大牛?无他,唯手熟尔!

tomcat+ssl+火狐:ssl_error_weak_server_ephemeral_dh_key之完美解决

2016-03-11 19:21:23来源:caogenjava阅读[2268]评论[0]
摘要:开启tomcat的ssl功能很简单,怎么做大家自己去搜,不是本文的重点。本文要说的是,开启ssl功能之后发现一个很奇怪的问题,使用IE、谷歌等访问都没有问题,但是使用火狐浏览器访问时提示了一个奇怪的错误:连接 www.XXX.com 时发生错误。 在服务器密钥交换握手信息中 SSL 收到了一个弱临时 Diffie-Hellman 密钥。 (错误码: ssl_error_weak_server_ephemeral_dh_key)

本文由草根java提供,转载请注明出处https://www.caogenjava.com/detail/78.html

开启tomcat的ssl功能很简单,怎么做大家自己去搜,不是本文的重点。本文要说的是,开启ssl功能之后发现一个很奇怪的问题,使用IE、谷歌等访问都没有问题,但是使用火狐浏览器访问时提示了一个奇怪的错误:连接 www.XXX.com 时发生错误。 在服务器密钥交换握手信息中 SSL 收到了一个弱临时 Diffie-Hellman 密钥。 (错误码: ssl_error_weak_server_ephemeral_dh_key)。

笔者一通百度之后完美解决了这个问题,为什么说完美解决,因为网上给出了很多方案,但是都不是很靠谱,而笔者即将说的这个方法很靠谱。首先咱们自我发问一下,火狐报这个错到底是谁的问题?火狐的问题吗?如果是火狐的问题,可为什么使用火狐访问百度或者淘宝都没问题呢?tomcat或者程序的问题?如果是tomcat或者程序的问题,可为什么使用IE访问是正常的呢?好吧,严格说起来,两边都有问题。只要有一方改正了,就ok了。

方法一:修改火狐配置
安装一个插件即可立即解决这个问题。https://addons.mozilla.org/en-us/firefox/addon/disable-dhe/。(网上还有通过about:config修改配置的,但是安装插件的方法是最简单有效的)
但是这种方法,笔者并不推荐。因为你的网站可是运行在互联网上的,大家都要看,可不是供你一个人自娱自乐的。当有用户使用火狐浏览器访问你的网站时给出了那么个错误,人家可没闲工夫思考怎么解决这个问题,肯定会暗骂:什么烂网站!

方法二:修改tomcat配置
修改server.xml文件,在配置ssl的地方增加两个参数

sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
     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_SHA,SSL_RSA_WITH_RC4_128_SHA"

这个方法也是从网上找到的,刚看到这个方法时我心里惊喜,因为终于有人敢于从tomcat配置下手来解决问题了,而不是一味的谩骂火狐怎么又出bug了。但是按照此法修改后还是无法访问(不安装方法一中的插件前提下),而且后台报各种不支持。
经过一番折腾,我发现思路确实对了,但是不是这么玩的。你先把这两个参数屏蔽掉,恢复到原来的样子,借助上面的插件让网站可以访问,然后点击火狐地址栏前面的绿色小锁查看页面信息。

火狐ssl_error_weak_server_ephemeral_dh_key问题解决-caogenjava.com

注意红框标出的两个地方,看见没,他俩其实就是上面那两个参数的值,所以你可以直截了当的这么写:

sslEnabledProtocols="TLSv1" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA"

保存server.xml重启一下tomcat,把插件禁用,你再看看效果。ok,大功告成,可以访问了,你再也不用担心有人骂你烂网站了。


除非注明,文章均为草根java原创,转载请注明本文地址: https://www.caogenjava.com/detail/78.html

上一篇:微信开发errcode:45015,errmsg:response out of time limit之完美解决        下一篇:让windows server 2008桌面上显示“计算机”、“网上邻居”等图标
网友评论,共0 发表评论
昵称:
评论:
验证码: 刷新验证码