SQLServer JDBC 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
此方法适用于JDK1.8,应用场景常见于window server操作系统
网上有不少人遇到过使用jdbc连接sqlserver出错的情况,错误信息为
错误一:
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。
java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
原因:
JDK7/8后添加了安全机制,导致这个问题出现
solve:
修改jre\lib\security\java.security
jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage TLSServer, \RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024, \EC keySize < 224, DES40_CBC, RC4_40, 3DES_EDE_CBC
修改为:
jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768
错误二:(都是一类的错,但是细节不同)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“SQL Server 未返回响应。连接已关闭。 ClientConnectionId:b441ca70-fe1b-4cde-9954-4f8251d62979”。
修改jre\lib\security\java.security,删除jdk.tls.disabledAlgorithms中的3DES_EDE_CBC
重启服务,问题解决!
作者:格來羙、日出
来源链接:https://blog.csdn.net/w345731923/article/details/102676566
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。