驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected
protocol version TLS10 is not accepted by client
依赖版本
<dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><version>8.2.2.jre8</version>
</dependency>
然后就出现以下情况:
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS12]”。 ClientConnectionId:48de29ee-7f21-4742-a83b-45befd44d32e
解决方式:
-
网上见得最多的方法:
1)、找到 [java.security](C:\Program Files\Java\jdk-17\conf\security\java.security) 文件(jdk17中文件路径:C:\Program Files\Java\jdk17\conf\security)
2)、打开文件,找到jdk.tls.disabledAlgorithms 方法,解除 禁用TLSv1算法,这种比较老的算法,java8以上都默认禁止了
jdk.tls.disabledAlgorithms=SSLv3, RC4, TLSv1.1, DES, MD5withRSA, \DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL
-
springboot中解决方法:
懒得去找security文件改东西了,直接在main方法中配置就好了
public static void main(String[] args) {// 项目连接sql server, 解除禁用tlsV1的过时算法Security.setProperty("jdk.tls.disabledAlgorithms","SSLv3, " +" RC4, TLSv1.1, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL");String disabledAlgorithms = Security.getProperty("jdk.tls.disabledAlgorithms");System.out.println("Disabled Algorithms: " + disabledAlgorithms);SpringApplication.run(Application.class, args);}
我选二,主要不想那么麻烦!!!