驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
一、在进行项目开发时,当使用的是sqlserver数据库,有时候会出现“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接”的报错内容
解决方案:
在数据库链接的URL后面添加trustServerCertificate=true,这个配置意味着客户端将信任它从SQL server获得的证书,而不进行完全验证。虽然此种方式不是最优解,但是却可以顺利的解决此问题。
spring:
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:sqlserver://localhost:1433;databaseName=his2010;trustServerCertificate=true
username: sa
password: *********
二、当报错内容是以下内容时
com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。 ClientConnectionId:b0907b82-2df1-4cf5-9640-053720fe9ed9
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:3680)
at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:2047)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:3204)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2833)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2671)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1640)
解决方案:修改JDK安装目录下的confsecurityjava.security文件
将
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA,
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL修改为
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA,
DH keySize < 1024, EC keySize < 224, anon, NULL