报错信息:
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
环境:
jdk1.8
解决过程:
经过百度后,进行了以下操作
第一步:
下载两个jar包--------------------->bcprov-ext-jdk15on-1.54.jar和bcprov-jdk15on-1.54.jar
第二步:将下载的两个JAR文件复制到:JDK安装目录\jre\lib\ext下,例如我的就是F:\JDK\jdk6\jre\lib\ext
打开java.security文件:在JDK安装目录\jre\lib\security下的java.security文件。
找到security.provider.1=sun.security.provider.Sun换成
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
重新执行连接数据库程序就可以
但是这两步操作并没有产生作用,最后在https://www.cnblogs.com/blsz/p/11530380.html这篇文章中找到了答案
最终解决方案:
打开文件夹(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
原因:
在 JDK 8 及更早版本中,编辑该 /lib/security/java.security 文件并 3DES_EDE_CBC 从 jdk.tls.legacyAlgorithms 安全属性中删除。
官方文档指出:请注意,这是一个低风险的更改。它不太可能导致回归,因为它只会影响协商算法的顺序。如果没有其他非遗留算法可用,则仍将使用 3DES(如果在遗留算法列表上列出)。
似懂非懂,但问题解决了,先整理记录一下=-=