最近因为win10的补丁包推送导致公司的项目无法访问,以下为我的解决过程:
问题原因:公司项目只支持ie,且使用的https超文本安全传输协议。SSL是为网络通信提供安全及数据完整性的一种安全协议。SSL在传输层对网络连接进行加密,实现安全传输。
但因为公司的该项目比较老,服务器上的SSL加密套件过弱,(注:早期版本的浏览器只支持40或56位加密,此类密钥较短的加密算法前几年已经被证实可能被破解)最近win10的更新补丁包就是对ie浏览器的安全性进行了加强,如果秘钥的加密算法较弱则禁止不安全的连接。从而导致项目无法访问。
解决办法:1、最先解决时把项目的jdk从1.6升级到1.7后,项目可以访问,但里面的一些功能受到影响。分析原因可能是,tomcat是基于jdk的,则tomcat内的加密算法也是调用jdk内部的方法,而jdk1.7的加密算法相比1.6有了改进导致秘钥版本提高,浏览器没有进行拦截。但因为内部功能受到影响,所以没有采用。
2、通过修改服务器配置,增加加密的安全级别。
比如,tomcat配置:
ciphers=”TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA” 提高tomcat加密的级别
这个配置在tomcat的server.xml中找到443的端口(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。),在Connector中配置,最终采用这种解决方案。