驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:"The server selected
protocol version TLS10 is not accepted by client
依赖版本
bash
<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); }
我选二,主要不想那么麻烦!!!