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