.htaccess 无法阻止“此连接不受信任”警告

2024-03-19

拥有带有插件域的托管帐户。目录结构如下:

/public_html (main site is hosted in this directory)
/public_html/secondary_site/ (secondary site is hosted in this directory.

我在 public_html 文件夹中使用以下 .htaccess 文件(在 secondary_site 文件夹中没有 .htaccess 文件):

RewriteEngine On

# BEGIN Domain to folder mapping
    # pointing HTTPS secondarysite.com to https://primarysite.com/secondarysite/
    RewriteCond %{SERVER_PORT} ^443$
    ReWriteCond %{HTTP_HOST} primarysite.com
    ReWriteCond %{REQUEST_URI} !primarysite/
    ReWriteRule ^(.*)$ https://primarysite.com/secondarysite/$1 [L]

    # pointing HTTP secondarysite.com to http://primarysite.com/secondarysite/
    RewriteCond %{SERVER_PORT} ^80$
    ReWriteCond %{HTTP_HOST} secondarysite.com
    ReWriteCond %{REQUEST_URI} !secondarysite/
    ReWriteRule ^(.*)$ http://primarysite.com/secondarysite/$1 [L]
# END Domain to folder mapping

第二条规则适用于非安全连接,它正确转发到 public_html/ secondary_site 目录。

然而,当我尝试安全地连接到 secondarysite.com 时,我看到了警告页面,其中指出:

您尝试访问 secondarysite.com,但实际上您 到达了一个将自身标识为primarysite.com 的服务器。这可能是 由服务器配置错误或其他原因引起 严肃的。您网络上的攻击者可能试图让您 访问 secondarysite.com 的假冒(且可能有害)版本。

如果我单击“我明白,继续”按钮,它会将我带到正确的 SSL 安全目录 public_html/ secondary_site。 SSL锁是绿色的,快乐的。

为什么此 .htaccess 文件无法捕获对辅助站点的请求并将其重新写入主站点结构,然后才有机会因域不匹配而引发错误证书?


(这或多或少与这个问题 https://stackoverflow.com/a/10931004/372643,所以我将从那里调整我自己的答案。)

HTTPS 是基于 TLS/SSL 的 HTTP(请参阅RFC 2818 https://www.rfc-editor.org/rfc/rfc2818),在发送任何 HTTP 流量之前首先建立 SSL/TLS 连接。任何重定向(通过mod_rewrite、自定义 PHP 代码或其他)在建立 SSL/TLS 连接后将始终适用。

不这样做实际上会产生安全问题,因为攻击者可以在证书验证之前重写和重定向客户端。

如果您想重定向自https://secondarysite.com to https://primarysite.com,获得的证书为https://secondarysite.com必须有效于secondarysite.com(然后,获得的证书https://primarysite.com必须有效于primarysite.com).

(如果两台主机在同一 IP 地址上提供服务,则可以使用两个带有服务器名称指示的不同证书,但并非所有客户端都一定支持它。)

最简单的方法是获得对双方均有效的证书secondarysite.com and primarysite.com。这可以使用具有多个主题备用名称条目的单个证书来完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.htaccess 无法阻止“此连接不受信任”警告 的相关文章

随机推荐