jdbc The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
时间: 2023-12-17 11:27:17 浏览: 209
该错误是由于客户端和服务器之间的TLS协议版本不兼容导致的。客户端偏好使用TLSv1.2,但服务器选择使用TLSv1.0。这可能是由于JDK版本的更改导致的,因为较新的JDK版本默认不支持TLSv1和TLSv1.1协议。
解决方案有两种:
1.动态修改安全配置,在程序代码中将禁用TLSv1、TLSv1.1的配置去掉。可以使用以下代码实现:
```java
System.setProperty("https.protocols", "TLSv1.2");
```
2.升级SQL Server以支持TLSv1.2。可以参考以下步骤:
- 确认SQL Server版本是否支持TLSv1.2。
- 如果不支持,请升级SQL Server以支持TLSv1.2。
- 确认JDK版本是否支持TLSv1.2。
- 如果不支持,请升级JDK以支持TLSv1.2。
相关问题
jdbc the server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]
这个错误是由于客户端和服务器之间的TLS协议版本不兼容导致的。客户端只接受TLS1.3和TLS1.2版本,而服务器选择了TLS1.0版本。要解决这个问题,有两种方法:
1.修改客户端的TLS协议版本,使其与服务器兼容。可以通过修改Java安全认证配置文件来实现。具体步骤如下:
- 打开$JAVA_HOME\jre\lib\security\java.security文件
- 找到jdk.tls.disabledAlgorithms配置项
- 删除其中的TLSv1
- 保存文件并重启应用程序
2.修改服务器的TLS协议版本,使其与客户端兼容。可以通过修改服务器的TLS配置来实现。具体步骤如下:
- 打开服务器的TLS配置文件
- 找到TLS协议版本配置项
将TLS版本设置为1.2或1.3
- 保存文件并重启服务器
The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
这个问题是由于客户端和服务器端的TLS版本不一致导致的。客户端希望使用TLS1.2,但服务器选择了TLS1.0。为了解决这个问题,有以下两种方法:
1.升级服务器端的TLS版本,使其支持TLS1.2。这可以通过更新服务器端的SSL/TLS库来实现。例如,在Apache服务器上,可以通过更新OpenSSL库来升级TLS版本。
2.降低客户端的TLS版本,使其支持TLS1.0。这可以通过在客户端应用程序中设置SSLContext来实现。例如,在Java中,可以使用以下代码将SSLContext设置为TLS1.0:
```java
SSLContext sslContext = SSLContext.getInstance("TLSv1");
sslContext.init(null, null, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
```
阅读全文