Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OpenJDK 11在JDBC连接字符串中使用TLS 1.2_Java_Mysql_Ssl_Jdbc - Fatal编程技术网

Java OpenJDK 11在JDBC连接字符串中使用TLS 1.2

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服务器只接受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: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…
(,…)非常好,谢谢!请加上这个作为回答。