1

我有一个网站foo.com,我需要将所有来自具有 TLS 1.0 的浏览器的连接重定向到foo.com/specific-page。我检查了Apache 文档,我可以禁用 TLS 协议,但是有什么方法可以使用 apache 配置强制重定向到特定页面?在第一次尝试中,我尝试使用 javascript 在应用程序上使用代码进行重定向,但由于这是客户端,所以这不是 TLS 1.0 的真正阻止程序。第二种方法是在 netscaler 上,但由于我要重定向的页面位于同一域中,因此 netscaler 无法阻止 TLS 1.0 并重定向到同一域内的子页面。

4

1 回答 1

1

看到这个要点: https ://gist.github.com/SamuelChristie/13a2a29e74c189bcfd9b#apache

Apache 的mod_ssl提供环境变量,可以提供与当前 SSL/TLS 连接相关的详细信息。将以下行添加到您的 conf 文件(确保您使用的是 mod_headers)将在传入请求中注入两个新标头。然后您可以X-SSL-Protocol在您的 Perl、PHP、Python 等中使用来评估是否应显示警告。

SSLOptions +StdEnvVars
RequestHeader set X-SSL-Protocol %{SSL_PROTOCOL}s
RequestHeader set X-SSL-Cipher %{SSL_CIPHER}s

用于读取 TLS 版本的示例 PHP(与 rails 一样,PHP/CGI 也会更改标头名称):

$tlsversion = $_SERVER["HTTP_X_SSL_PROTOCOL"];

使用 nginx 更简单:

if ($ssl_protocol != "TLSv1.2") {
    return 302 https://example.com/outdated-tls.html;
}
于 2017-08-05T08:40:50.327 回答