最近公司的一个新项目需要配置https(web用的是tomcat,jdk版本为6),等一切都配置妥当之后,使用ie浏览器访问是没有问题的,但是使用最新版的chrome浏览器访问是访问不了的,提示如下:

服务器的瞬时 Diffie-Hellman 公共密钥过弱_第1张图片

使用最新版的火狐浏览器访问提示如下:

服务器的瞬时 Diffie-Hellman 公共密钥过弱_第2张图片

使用360,搜狗还有低版本的火狐,谷歌浏览器都没有问题,造成这中情况的原因可能是由于最新版本的火狐、谷歌浏览器对通信加密过程中的密钥算法要求较高,一些服务器上默认的或者自带的密钥集,如果有较弱的密钥算法,会被这些浏览器阻止访问。

解决方法

替换JAVA_HOME/jre/lib/security/下的两个加密套件
    local_policy.jar  
    US_export_policy.jar

本文中有附带(jdk6使用)

官方下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

修改tomcat的配置文件在conf/server.xml的connector字段加入
sslEnabledProtocols="TLSv1"
 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_ECDHE_RSA_WITH_RC4_128_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_SHA256"

重启tomcat

注,直接升级jdk版本也可以解决这个问题