- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
拥有带附加域的托管帐户。目录结构如下:
/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 时,我看到了警告页面:
You attempted to reach secondarysite.com, but instead you actually reached a server identifying itself as primarysite.com. This may be caused by a misconfiguration on the server or by something more serious. An attacker on your network could be trying to get you to visit a fake (and potentially harmful) version of secondarysite.com.
如果我点击“我明白,继续”按钮,它会将我带到正确的、受 SSL 保护的 public_html/secondary_site 目录。 SSL 锁是绿色和快乐的。
为什么这个 .htaccess 文件没有捕获对辅助站点的请求并将它们重写到主站点结构中,然后它才有机会因域不匹配而引发错误证书?
最佳答案
(这或多或少与 this question 中的问题相同,所以我将从那里调整我自己的答案。)
HTTPS 是基于 TLS/SSL 的 HTTP(参见 RFC 2818),它在发送任何 HTTP 流量之前首先建立 SSL/TLS 连接。任何重定向(通过 mod_rewrite
、自定义 PHP 代码或其他)将始终在 SSL/TLS 连接建立后应用。
不这样做实际上会是一个安全问题,因为攻击者可以在验证证书之前重写和重定向客户端。
如果要从https://secondarysite.com
重定向到https://primarysite.com
,为https://获取的证书secondarysite.com
必须对 secondarysite.com
有效(然后,为 https://primarysite.com
获取的证书必须对 有效primarysite.com
).
(如果两台主机在同一 IP 地址上提供服务,您可以将两个不同的证书与服务器名称指示一起使用,但并非所有客户端都必须支持它。)
最简单的方法是获得对 secondarysite.com
和 primarysite.com
都有效的证书。这可以使用具有多个主题备用名称条目的单个证书来完成。
关于apache - .htaccess 不阻止 "This Connection is Untrusted"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24796552/
我是一名优秀的程序员,十分优秀!