网站进行了https的部署,证书和秘钥都是用keytool生成的,但有不少人用最新版本的Google浏览器进行访问的时候报错:“服务器的瞬时 Diffie-Hellman 公共密钥过弱”,那么这时,站长们应该怎样处理呢?
解决方案1:
1、升级到最新的JDK版本(8.0以上),就可以立刻解决该问题。
2、如果没有办法升级JDK,可以采用调整服务器加密套件的配置来解决。
http服务器相关配置
1.首先生成大于1024bit(例如2048bit)的dhkeyopenssl dhparam -out dhparams.pem 2048
2.然后在对应服务器中配置Apache2.4.8及以后版本 使用如下配置命令配置(http.conf中或者对应的虚拟主机配置文件中添加)
SSLOpenSSLConfCmd DHParameters “{path to dhparams.pem}”
Apache2.4.7版本 Apache2.2.31版本及以后版本
redhat debian等大多发行版中最新Apache2.2.x 通过把dhparams.pem的内容直接附加到证书文件后
Apache2.4.7之前2.4.x版本
Apache2.2.31之前版本
dhparam默认为1024bit 无法修改
nginx使用如下命令配置(在对应的虚拟主机配置文件nginx.conf中server字段内添加)
ssl_dhparam {path todhparams.pem}
3、Tomcat
基于Java 1.6,请在Server.xml中增加以下ciphers配置:
<Connector port=”443″ protocol=”org.apache.coyote.http11.Http11Protocol”
……
ciphers=”TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA”></connector>
基于Java 7,请在Server.xml中增加以下ciphers配置:
<Connector port=”443″ protocol=”org.apache.coyote.http11.Http11Protocol”
……
ciphers=”TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,SSL_RSA_WITH_3DES_EDE_CBC_SHA”></connector>
4、Weblogic
找到config.xml文件,修改编辑其中<ciphersuite></ciphersuite>参数,增加:
<ciphersuite>TLS_RSA_WITH_3DES_EDE_CBC_SHA</ciphersuite>
<ciphersuite>TLS_RSA_WITH_AES_128_CBC_SHA</ciphersuite>
还可以在Chrome浏览器“右键–》属性”增加如下配置:
“C:\Program Files\Google\Chrome\Application\chrome.exe” –cipher-suite-blacklist=0x0088,0x0087,0x0039,0x0038,0x0044,0x0045,0x0066,0x0032,0x0033,0x0016,0x0013
如果服务器配置无法修改,例如2.31之前版本,可以禁用DHE系列算法,采用保密性更好的ECDHE系列算法,如果ECDHE不可用可以采用普通的 RSA。
解决方案2:
1、 替换JAVA_HOME/jre/lib/security/下的两个加密套件
local_policy.jar US_export_policy.jar
2、在部署单点的那个服务器中的tomcat的conf/server.xml的8443端口配置中加入下面这个:sslEnabledProtocols = “TLSv1,TLSv1.1,TLSv1.2″
ciphers=”TLS_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA”
GDCA是一家提供信息安全证书的运营企业,从事信息安全证书数十载,在信息安全方面拥有雄厚的实力。GDCA已通过WEBTRUST国际认证,具备了国际化的电子认证服务能力。其中,GDCA的 产品之一SSL证书是一种服务器端的数字证书,它能确保用户在使用SSL协议进行数据交换时验证和确保数据安全。GDCA SSL证书使用的加密长度是128/256位。据目前IT技术,40位强度的证书暴力破解耗费4小时,而对于128位证书破解需要一万亿年以上。目前,GDCA SSL证书是国内领先的安全证书。日后,GDCA将会坚持不断深入研发,为各大网络商业平台提供更安全的信息安全证书,为网络安全虚拟世界贡献一份微弱的力量。
上一篇:SQL Server和MySQL:两大服务器比较
下一篇:详解SSL证书中的keystore