我用 Ubuntu 20 设置了一台新机器,发现我无法再连接到我的 RDS 数据库。
应该连接到开发环境的 spring-boot 应用程序抛出以下异常:
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
所以我挖出了 mySql 工作台并尝试了它。这导致了这个错误:
ssl_choose_client_version:unsupported protocol
寻找那个告诉我 Ubuntu 20 将 TLSv1.2 设置为最低 TLS 版本,如果您的 MySQL 服务器不支持它,则会发生此错误(来自这里:https ://askubuntu.com/questions/1193629/why -mysql-workbench-8-x-errors-out-with-an-ssl-connection-error-choose-client-v)。我尝试关闭 SSL 的工作台,果然它可以建立连接。
显而易见的问题是,这是 Amazon RDS ... TLS 1.2 是唯一无法禁用的版本,因为它是内部使用的版本,如下所示:https ://docs.aws.amazon.com /AmazonRDS/latest/UserGuide/SQLServer.Ciphers.html
所以说真的,应该没有问题。我开始怀疑 TLS 版本是否真的是问题所在。但由于我没有任何其他线索,我按照这里的答案中的食谱重新配置我的本地 openssl 以允许最低 TLS 版本 1 并降级安全级别:https ://askubuntu.com/questions/1233186/ubuntu- 20-04-how-to-set-lower-ssl-security-level
您不知道吗,Workbench 现在连接的 SSL 设置为必需。Spring-Boot 仍然没有,我想我必须在其他地方配置它才能获得备忘录。但与其浪费时间,我宁愿解决真正的问题,即我无法通过 TLSv1.2 进行连接,而据我所知,我确实应该能够连接。这比降低我的安全性要好得多。我尝试更新数据库证书以防万一出现问题,但管理控制台发现证书没有任何问题,如果我不需要,显然不会让我更换它。所以我有点不知道下一步该尝试什么。