jdbc The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
时间: 2023-12-17 17:27:17 浏览: 191
该错误是由于客户端和服务器之间的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 [TLS13, TLS12]报错
这个错误信息"The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]"表明客户端在尝试连接到服务器时,拒绝了服务器提供的TLS (Transport Layer Security) 协议版本1.0,因为客户端只支持更高级别的协议版本TLS 1.3和TLS 1.2。
TLS 1.0是一个较早的安全协议版本,自2016年左右,许多现代浏览器和客户端由于安全性和性能考虑,开始不再支持它,转而倾向于使用更新、更强加密标准的TLS 1.2和更高版本(如TLS 1.3)。服务器选择TLS 1.0可能是因为它的设置仍然默认为该版本,或者服务器不支持更新。
为了解决这个问题,你需要确保你的客户端配置能够接受至少TLS 1.2的连接。这通常可以在客户端的设置中更改,例如在浏览器的高级网络选项中,或者在代码中使用相应的SSL/TLS库并明确指定支持的最小协议版本。如果服务器端无法升级,可能需要管理员干预修改服务器配置以支持更高的TLS版本。
阅读全文