是否可以根据使用的 SSL 协议生成不同的页面

是否可以根据使用的 SSL 协议生成不同的页面

此主题表明不可能使用不同的 SSL 协议来拥有单独的虚拟站点。这是一个 github 问题关于此的讨论

我想要做的是显示协议协商失败的特定静态页面。

在我的 Apache2.4 服务器 default.conf 文件中

<IfModule mod_ssl.c>
 SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
 SSLHonorCipherOrder     on
 SSLCompression          off
 SSLSessionTickets       off

我强制使用 TLSv1.2,但我发现有些 IE 安装默认未启用 TLSv1.2(并且启用了 SSLv3.0...哎呀),因此从 IE 查看我的网站的用户只会收到连接失败的一般错误,而不是服务器端对话生成的错误。我想以某种方式强制使用静态页面来解释问题并修复该问题。

这可能吗?

一年后更新 仍在寻找不会降低我网站安全性的解决方案。我想在我的网站上仅接受 TLSv1.2(或更高版本),但我想重定向到一个设置页面,可能在子域或全新域下,允许较低的安全性(甚至可能没有),我会在其中说一些静态内容,例如“您的浏览器太旧,无法安全连接到网站。您应该升级您的浏览器或更改为受支持的浏览器,例如 Chrome、Firfox、Edge(每个都有链接)”

当然,在当今网站安全性强、合规性要求高的时代,这不应该成为问题。任何使用现代浏览器的人都可以安全地获得我想要的东西,只有那些使用旧版浏览器的人才会收到“无法连接错误”的提示,没有任何解释或解决方案。

答案1

正在使用的协议可通过 %{SSL:whatever} 变量供 mod_rewrite 使用。当然,要使此功能正常工作,您必须先重新启用有问题的协议。

可用的 SSL 变量列表可在此处找到:http://httpd.apache.org/docs/current/mod/mod_ssl.html#envvars

一般来说,这种解决方案是个坏主意。允许使用弃用的协议实际上会导致一些较旧的浏览器坚持使用不好的协议,而不会改用好的协议。因此,您实际上将拒绝一些原本可以通信的用户的访问。

相关内容