sqlserver2012连接JAVA: The server selected protocol version TLS10 is not accepted by client preference

avatar 2021年06月15日14:58:33 6 18867 views
博主分享免费Java教学视频,B站账号:Java刘哥

 刚才帮一个朋友解决了一个问题,记录下,虽然简单也花了不少时间,正好我服务器上那个风吟博客最近好像也是这个问题,项目没起来一直没管它,待会儿一起解决掉。

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服务器上的

 

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0