Bootstrap

The server selected protocol version TLS10 is not accepted by client preferences [TLS12]“. 这个问题如何解决?

问题描述:

springboot连接sqlserver数据库出现异常:ERROR org.apache.tomcat.jdbc.pool.ConnectionPool - Unable to create initial connections of pool.

com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "The server selected protocol version TLS10 is not accepted by client preferences [TLS12]". ClientConnectionId:6602d2a8-f003-4638-af96-ecbfeb99abe3
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2392)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1777)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1969)

 

解决方法:

这个情况很有可能是你的sqlserver的版本太低了,我之前连接sqlserver2008版本也出现这个问题,把sqlserver换成sqlserver2017版本就好了,当然换数据库成本太大了!

不想换数据库版本,也可以换你的jdk,jdk1.8-144这个版本可以避免这个问题。

如果也不想换jdk的话可以试试换jdbc的连接jar包,换成如下的jar:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>sqljdbc4</artifactId>
    <version>4.0</version>
</dependency>

网上也有说修改java.security文件的,我试过,没用,所以就不介绍了。

;