问题回顾
昨天在帮忙给一个小伙伴处理java链接server的时候遇到The server selected protocol version TLS10 is not accepted by client preferences
根据错误信息,进行了搜索,发现得知。由于高版本的JDK禁用了TLS10
解决问题
找到java安装目录的conf\security
打开java.security
,搜索关键字jdk.tls.disabledAlgorithms=SSLv3
,如下所示
一、删除TLSv1, TLSv1.1
(我使用的这个)
二、删除TLSv1, TLSv1.1
和 3DES_EDE_CBC
(这个未尝试)
这是由于其中的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
但是运行还是不行的,这种方式不采用。