今天升级了Firefox,发现之前一个可以访问的网站被拦截,提示“连接10.0.0.5时发生错误。在服务器密钥交换握手信息中SSL收到了一 个弱临时Diffie-Hellman密钥。(错误码:ssl_error_weak_server_ephemeral_dh_key),如下图:
有以下三种解决方法:
方法一:修改tomcat配置,禁用不安全的方式,修改server.xml中的Connector节点如下:
- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
- maxThreads="150" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS"
- 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"
- keystoreFile="/usr/local/apache-tomcat-7.0.62/tomcat.key"
- keystorePass="aaa"/>
Apache和Nginx也有类似的配置,请自行查找。
方法二:安装Disable DHE插件
方法三:打开 about:config
新建或修改以下4个布尔值为 false 即可(搜索dhe能找到):
- security.ssl3.dhe_dss_aes_128_sha
- security.ssl3.dhe_rsa_aes_128_sha
- security.ssl3.dhe_rsa_aes_256_sha
- security.ssl3.dhe_rsa_des_ede3_sha
此问题出现在Firefox 39及以上版本中。