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 < 224
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024, \
    EC keySize < 224, DES40_CBC, RC4_40, 3DES_EDE_CBC

修改爲:

jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
jdk.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

重啓服務,問題解決!
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章