目前我发现 1.10 版本里 sslv3 是无法启用的,当然这个还是比较合理的 即使我在 cipher 里加了 DES-CBC3-SHA,也没禁用 3DES ,但是 XP 下的 IE8 还是无法正常握手,提示版本过低 查了下发现这个算法会导致 BEAST attack ,但是 nginx 官方文档里似乎并没说较新的版本里默认 disable 了这个算法。 换句话说,是否用了 1.10 以上版本的 nginx 就只能放弃 XP IE8 的用户了?
1
sunflyer 2017-04-16 12:13:12 +08:00
这个应该和编译使用的 openssl 有关
|
2
longxboy 2017-04-16 12:21:21 +08:00 via Android
试试看 dockerhub 里面的 nginx-apline 镜像,默认版本的 openssl 确实有问题
|
3
Infernalzero OP @sunflyer 这个我确认过,使用的 openssl 的 cipher 里是包含 DES-CBC3-SHA 的
|
4
sunflyer 2017-04-16 12:30:10 +08:00
@Infernalzero 你要确定是 Nginx 编译用的那个版本里面包含。
|
5
Hardrain 2017-04-16 13:27:54 +08:00 1
你用的是 OpenSSL 1.0.2k?
这个版本默认移除了对 3DES 和 RC4 加密套件的支持(前者是因为 SWEET32 攻击),除非添加编译参数 enable-weak-ssl-ciphers 重新编译 Nginx 且不使用系统的 OpenSSL 添加如下编译参数 --with-openssl=/path/to/openssl/source \ --with-openssl-opt=enable-weak-ssl-ciphers \ nginx -V 获取其余的编译参数,照抄即可. |
6
wanderer 2017-04-16 18:50:44 +08:00
XP IE 还是用 RC4 吧, CBC 系列的最好禁用了吧......
|
7
wanderer 2017-04-16 19:14:55 +08:00 1
XP 版本的 IE 8 只支持 SSLv3 和 TLS 1.0 的 Cipher Suite ,另外 nginx 自 1.9.1 开始默认不会开启 SSLv3, 所以你不妨贴下你 nginx ssl_protocols ssl_ciphers 以及 IE 8 中的配置,我猜测可能是浏览器没有开启对 TLS 1.0 的支持, nginx 没有开启对 SSLv3 的支持,所以提示「版本过低」!
解决方案及建议 : 1 ) 打开 XP IE 8 中的 TLS 1.0 的支持,同时确保 nginx 中的 ssl_protocols 开启对 tls1.0 的支持 2) 对 XP 下的 IE 用户尽量用 RC4 去代替 CBC 希望能帮到你哈 |