最近接手了公司的一个项目,架构是SSM,数据库是多数据库,有mysql、sqlserver,项目用的eclipse开发的,所以呢,我也就用eclipse利用svn将项目down下来,现在本地跑一跑熟悉一下。结果呢,跑起来就碰到了一个问题,百度了一个下午没解决。
问题
进行查询操作报错:
驱动程序无法使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。
当时我就人傻了,之前用的都是mySQL,orcale.现在突然用一下sqlserver报这个错。所以赶紧百度一波
然并卵,我的是jdk版本是 jdk1.8.0_211,也试了这种方法,么的一点用。然后我继续各种百度找
反正就是…就这样各种试方法,肝了一个下午,也么搞定。今天一早来到公司,用手机浏览器搜索,看能不能找到解决办法,哎嘿,,还真找到了。
下面我贴一下解决办法,若有小伙伴也碰到类似错误,可以尝试这样解决~
解决
查下jdk的Release Notes,在171的Release Notes里果然找到一条关于ssl的安全性修复:
security-libs/javax.net.ssl
3DES Cipher Suites Disabled
To improve the strength of SSL/TLS connections, 3DES cipher suites have been disabled in SSL/TLS connections in the JDK via the jdk.tls.disabledAlgorithms Security Property.
再配合-Djavax.net.debug=ssl:handshake:verbose
参数输出了ssl的调试信息,看到了sqlserver的ssl连接使用了3DES的算法。
操作:
修改jre\lib\security\java.security,删除jdk.tls.disabledAlgorithms中的3DES_EDE_CBC
*
重启服务,问题解决!