tomcat+ssl+火狐:ssl_error_weak_server_ephemeral_dh_key之完美解决
开启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了。但是按照此法修改后还是无法访问(不安装方法一中的插件前提下),而且后台报各种不支持。
经过一番折腾,我发现思路确实对了,但是不是这么玩的。你先把这两个参数屏蔽掉,恢复到原来的样子,借助上面的插件让网站可以访问,然后点击火狐地址栏前面的绿色小锁查看页面信息。
注意红框标出的两个地方,看见没,他俩其实就是上面那两个参数的值,所以你可以直截了当的这么写:
sslEnabledProtocols="TLSv1" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA"
保存server.xml重启一下tomcat,把插件禁用,你再看看效果。ok,大功告成,可以访问了,你再也不用担心有人骂你烂网站了。
-
1微信开发errcode:45015,errmsg:response out of time limit之完美解决
-
2archive is not a ZIP archive之解决
-
3火狐每次启动都弹出迅雷提示下载openh264之解决
-
4Eclipse中提示Could not find the main class之解决
-
5以小米6为例图说安卓手机如何安装谷歌四件套
-
6在微信中调用外部浏览器实现文件下载之解决
-
7java web项目代码不报错但是项目左上角有个红叉之解决
-
8Eclipse中svn资源库中文路径乱码解决
-
9万能方法用指定浏览器打开桌面上的网页快捷方式
-
10论坛注册:用户名包含被系统屏蔽的字符之完美解决
-
1微信开发errcode:45015,errmsg:response out of time limit之完美解决
-
2archive is not a ZIP archive之解决
-
3火狐每次启动都弹出迅雷提示下载openh264之解决
-
4Eclipse中提示Could not find the main class之解决
-
5XML document structures must start and end within the same entity报错解决
-
6以小米6为例图说安卓手机如何安装谷歌四件套
-
7在微信中调用外部浏览器实现文件下载之解决
-
8U盘安装CentOS 7终极方案,简单有效
-
9POI合并单元格时CellRangeAddress类提示过时之解决
-
10java web项目代码不报错但是项目左上角有个红叉之解决