Java OpenJDK 11在JDBC连接字符串中使用TLS 1.2
我的远程MySQL服务器只接受TLS1.2上的连接。如何在JDBC(OpenJDK 11)中选择协议版本 SQL状态:28000 java.sql.SQLException:使用的TLS版本不满足最低要求 对于此服务器。请使用更高的TLS版本,然后重试。Java OpenJDK 11在JDBC连接字符串中使用TLS 1.2,java,mysql,ssl,jdbc,Java,Mysql,Ssl,Jdbc,我的远程MySQL服务器只接受TLS1.2上的连接。如何在JDBC(OpenJDK 11)中选择协议版本 SQL状态:28000 java.sql.SQLException:使用的TLS版本不满足最低要求 对于此服务器。请使用更高的TLS版本,然后重试。 mysql mysql连接器java 8.0.21 我已尝试将enabledslprotocolsuites添加到我的连接字符串中,但没有效果 jdbc:mysql://{server}.mysql.database.azure.com:
mysql
mysql连接器java
8.0.21
我已尝试将enabledslprotocolsuites
添加到我的连接字符串中,但没有效果
jdbc:mysql://{server}.mysql.database.azure.com:3306/{database_name}?
serverTimezone=Australia/Melbourne&useSSL=true&requireSSL=true&enabledSslProtocolSuites=TLSv1.2
在启动mvn exec:java时添加-Djdk.tls.client.protocols=“TLSv1.2”-Djavax.net.debug=all
会显示尝试使用tls1.1向客户机打招呼
javax.net.ssl|DEBUG|0C|azuremysqltest.App.main()|
2020-08-31 09:16:34.400 UTC|ClientHello.java:653|
Produced ClientHello handshake message (
"ClientHello": {
"client version" : "TLSv1.1",
"random" : "0D 94 D2 90 A7 C0 ...",
"session id" : "",
"cipher suites" : ...
您可以(显然)通过enabledTLSProtocols
属性()为mysql驱动程序选择TLS版本(独立于java供应商):
- 启用DTLSP协议
如果“useSSL”设置为“true”,将覆盖启用的TLS协议,以便在底层SSL套接字上使用。这可用于限制与特定TLS版本的连接|自|版本8.0.8起|
在您的情况下,值
=TLSv1.2
已批准工作。很抱歉,我找不到此属性的(精确)值的参考,但我们可以进一步调查/获取支持的ssl协议版本。请尝试enabledtlsprostations=TLSv1.2
而不是enabledslprotocolsuites…
(,…)非常好,谢谢!请加上这个作为回答。