要從舊算法列表中刪除3DES:
在JDK 8及更早版本中,編輯該 /lib/security/java.security文件並3DES_EDE_CBC從jdk.tls.legacyAlgorithms安全屬性中刪除。
官方文檔指出:請注意,這是一個低風險的更改。它不太可能導致回歸,因為它只會影響協商算法的順序。如果沒有其他非遺留算法可用,則仍將使用3DES(如果在遺留算法列表上列出)。
把jdk下面的java.security中的,去掉 3DES_EDE_CBC 可以使用jdbc連上sqlserver。
在Java 8默認禁用【加密套件】:“SSL_RSA_WITH_3DES_EDE_CBC_SHA”.
然后要連接成功的話,要開啟“SSL_RSA_WITH_3DES_EDE_CBC_SHA”,找到的答案是:
打開文件夾(JAVA_HOME)/jre/lib/security中的安全策略文件:Java.security
修改jdk.tls.disabledAlgorithms選項。
Java 8的jdk.tls.disabledAlgorithms默認值:
jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024,
EC keySize < 224, DES40_CBC, RC4_40,3DES_EDE_CBC
為了開啟SSL_RSA_WITH_3DES_EDE_CBC_SHA,將3DES_EDE_CBC注釋掉:
Java 8的jdk.tls.disabledAlgorithms默認值:
jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024,
EC keySize < 224, DES40_CBC, RC4_40
#,3DES_EDE_CBC
參考:
JDBC連接數據庫遇到的“驅動程序無法通過使用安全套接字層(SSL)加密與 SQL Server 建立安全連接。”問題解決方法!