一、问题现象
火狐浏览器打开HTTPS服务请求报出“服务器密钥交换握手信息中 SSL 收到了一个弱临时 Diffie-Hellman 密钥,错误码是“ssl_error_weak_server_ephemeral_dh_key”,如下图所示
二、解决问题
这时因为Firefox浏览器对于证书认证比较严格,而IE比较松
A.方法一:从根本上解决问题,需从服务端修改,在tomcat的server.xml配置Connector属性从添加 ciphers属性 (如下倒数第二行)
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"@b@ maxThreads="150" scheme="https" secure="true"@b@ clientAuth="false" sslProtocol="TLS"@b@ keystoreFile="conf/test.keystore" keystorePass="changeit"@b@ truststoreFile="C:/NJ/PF/Java/jdk1.6.0_39/jre/lib/security/cacerts"@b@ 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" @b@ />
B.方法二:临时解决问题,配置Firefox浏览器,在地址输入“about:config”,把security.ssl3.dhe_rsa_aes_128_sha设置为false,security.ssl3.dhe_rsa_aes_256_sha也设置为false,默认都是true,如下图所示
C.方法三:安装disable dhe插件,点击下载,如下图