我想redirect我们的网站上的任何用户,如果他们尝试使用SSLv3(如果我只是禁用SSLv3和像IE6的浏览器出现,我似乎无法正确地redirect到我们的网站的http版本与错误消息 – 所以我想要允许SSLv3,但redirect,如果他们正在使用它的错误消息)。
我想我想要的东西如下:
RewriteCond %{SSL_PROTOCOL} SSLv3 RewriteRule (.*) http://%{SERVER_NAME}/mysite/unsupported_browser.html
不幸的是, %{SSL_PROTOCOL}总是显示为空。 我在Centos 6 32位上使用Apache 2.2.15。 SSL的正常工作正常(即https://mysite/mysite/unsupported_browser.html工作正常)。
似乎有一堆应该是可用的variables,但对我来说是空的( http://httpd.apache.org/docs/2.2/mod/mod_ssl.html )。
任何人有什么想法我可以做什么?
解决scheme是:
RewriteCond %{SSL:SSL_PROTOCOL} ^SSLv3$ RewriteRule (.*) http://%{SERVER_NAME}/unsupported_browser.html [L,R=302]
这对我有用:)
根据IBM [1],您应该能够查询ENV:SSL_PROTOCOL_VERSION环境variables,该variables应该由mod_ssl导出。
也就是说,最好是仅支持TLSv1及更高版本,并有一个自定义的错误页面来通知他们需要切换到支持TLS1或更高版本的浏览器。
[1]: “ http://publib.boulder.ibm.com/httpserv/ihsdiag/ssl_questions.html#REWRITESSL ”
[2]:更好,因为在不必进行重写决策时,计算成本高昂,当静态错误页面的下降对于服务器而言更便宜