驱动程序无法通过使用安全套接字层(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