龙空技术网

【Java】无法通过使用安全套接字层(SSL)加密与MSSQL建立安全连接

弹指一辉 45

前言:

如今朋友们对“程序已经被java安全阻止怎么办”大约比较珍视,同学们都想要知道一些“程序已经被java安全阻止怎么办”的相关文章。那么小编在网摘上网罗了一些对于“程序已经被java安全阻止怎么办””的相关内容,希望兄弟们能喜欢,朋友们快快来了解一下吧!

由于工作需要使用SpringBoot项目连接SQL Server作数据查询,在使用sqljdbc4-4.0.jar驱动包对数据库进行访问时出现了“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接”异常,最终通过修改java.security文件解决的。

由于不同版本的JDK对于本问题的结局办法不一样,我这边用到的JDK版本为JDK8,而此解决办法也是针对JDK8实现的。

从上网搜查到的资料得知JDK8及更早版本中,通过编辑/lib/security/java.security 文件并将 3DES_EDE_CBCjdk.tls.legacyAlgorithms安全属性中删除即可解决该问题…但事实上除了要修改 legacyAlgorithmsdisabledAlgorithms属性也是需要修改的。

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

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

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

配置好了之后就可以正常使用SQL Server驱动了。

标签: #程序已经被java安全阻止怎么办