刚才帮一个朋友解决了一个问题,记录下,虽然简单也花了不少时间,正好我服务器上那个风吟博客最近好像也是这个问题,项目没起来一直没管它,待会儿一起解决掉。
springboot项目,连接的是sqlserver,报错如下:
com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。 ClientConnectionId:14344856-fda6-458e-a9bf-9d015ddb24e7
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:3206) ~[mssql-jdbc-9.2.1.jre8.jar:na]
...........
排查思路如下
1、先看下是不是驱动问题,毕竟mysql常出现这种问题。
通过命令select @@version 查出sqlserver版本号为2012版本。设置pom.xml里mssql-jdbc的版本为7.2.2-jre8,重新启动项目,无效。
2、更换jdk版本,目前他只装了11和7
切换到7,项目启动不了,只能用11
3、百度了一下报错,链接点此,最终有效
找到 jdk8目录\jre\lib\security\java.security
说明下,jdk7和jdk8下都有这个jre目录,jdk11没有jre,我尝试生成了jre目录修改里面的java.security无效。
原因jdk11里有一个conf目录,需要改 jdk11目录\conf\security\java.security
网上说删除里面的 jdk.tls.disabledAlgorithms 值里的 3DES_EDE_CBC,我没有试
我是直接把整个 jdk.tls.disabledAlgorithms 的值的几行加了#注释的
jdk11,我的mac本地的
jdk8,linux服务器上的
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏