解决 The server selected protocol version TLS10 is not accepted 问题

0 阅读1分钟

问题回顾

昨天在帮忙给一个小伙伴处理java链接server的时候遇到The server selected protocol version TLS10 is not accepted by client preferences

根据错误信息,进行了搜索,发现得知。由于高版本的JDK禁用了TLS10

解决问题

找到java安装目录的conf\security

image.png

打开java.security,搜索关键字jdk.tls.disabledAlgorithms=SSLv3,如下所示

一、删除TLSv1, TLSv1.1(我使用的这个) image.png

二、删除TLSv1, TLSv1.13DES_EDE_CBC(这个未尝试) image.png

这是由于其中的TLSv1, TLSv1.1还有3DES_EDE_CBC是Java高版本中增加的,低版本不存在这些配置。

进行完操作之后,运行即可连接sqlserver。

注意

修改java.security文件的时候,需要更改用户权限。

乌龙

在未发现上面问题的时候,在连接的时候出现了

“Encrypt”属性设置为“true”且 “trustServerCertificate”属性设置为“false”,但驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server 建立安全

随后修改了连接sqlserver代码,
在连接url后面加上encrypt=false或者encrypt=true;trustServerCertificate=true
但是运行还是不行的,这种方式不采用。