com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接。


Spring boot 项目连接SQL Server 2019后,访问数据库失败,提示[com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接。] 经过排查为java  jre

解决方法1:

从JRE中编辑/lib/security/java.security 文件

并将 3DES_EDE_CBC 从 jdk.tls.legacyAlgorithms安全属性中删除即可解决问题

 

 

 解决方法2:

但事实上除了要修改 legacyAlgorithms外 disabledAlgorithms属性也是需要修改的。

而在 Java 8 默认是禁用SSL_RSA_WITH_3DES_EDE_CBC_SHA的,若要连接成功的话,要将其开启,需要将jdk.tls.legacyAlgorithms中的3DES_EDE_CBC删除。

jdk.tls.disabledAlgorithms

jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048

# 这个是原有的配置(已封存)
#jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
#    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
#    include jdk.disabled.namedCurves

# 这个是修改后的配置,需要注意的是TLSv1, TLSv1.1在这里被排除掉
jdk.tls.disabledAlgorithms=SSLv3, RC4,  MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, DES40_CBC, RC4_40, \
    include jdk.disabled.namedCurves

jdk.tls.legacyAlgorithms

# 这个是原有配置(已封存)
#jdk.tls.legacyAlgorithms= \
#        K_NULL, C_NULL, M_NULL, \
#        DH_anon, ECDH_anon, \
#        RC4_128, RC4_40, DES_CBC, DES40_CBC, \
#        3DES_EDE_CBC

# 这个是修改后的配置,这里将“3DES_EDE_CBC”删除了
jdk.tls.legacyAlgorithms= \
        K_NULL, C_NULL, M_NULL, \
        DH_anon, ECDH_anon, \
        RC4_128, RC4_40, DES_CBC, DES40_CBC

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM