目前我发现 1.10 版本里 sslv3 抗投诉服务器是无法启用的,当然这个还是比较合理的
即使我在 cipher 里加了 DES-CBC3-SHA,也没禁用 3DES ,但是 XP 下的 IE8 还是无法正常握手,提示版本过低
查了下发现这个算法会导致 BEAST attack ,但是 nginx 官方文档里似乎并没说较新的版本里默认 disable 了这个算法。
换句话说,是否用了 1.10 以上版本的 nginx 就只能放弃 XP IE8 的用户了?
这个应该和编译使用的 openssl 有关
试试看 dockerhub 里面的 nginx-apline 镜像,默认版本的 openssl 确实有问题
这个我确认过,使用的 openssl 的 cipher 里是包含 DES-CBC3-SHA 的
你要确定是 Nginx 编译用的那个版本里面包含。
你用的是 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 获取其余的编译参数,照抄即可.
XP IE 还是用 RC4 吧, CBC 系列的最好禁用了吧......
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
希望能帮到你哈
RC4 已经被视为不安全算法了,参考 Lucky13 attack
那你和 CBC 的坑对比下,就知道 XP + IE 用户使用 RC4 的好处了 :) 在都不安全的情况下,肯定是要权衡下的。
其实最好的情况不是直接拒绝 xp 用户嘛(逃)
同意 我的网站都已经拒绝 哈哈