【问题标题】:htaccess 301 directive for SSL用于 SSL 的 htaccess 301 指令
【发布时间】:2021-02-24 23:57:04
【问题描述】:

我试图让客户拥有多个域,但出于规范的原因,301 他们使用他们的“永久”域。我遇到了一些奇怪的活动,我很肯定这与我的语法有关,但我不知道问题出在哪里。

我有一个主域 - 我们称之为 permanent_site.com 注意:我安装了 SSL 并为“永久域”工作

我有多个非永久域,我想永久重定向到“永久域”。现在假设我有 2 个非主域:non_p_domain1.comnon_p_domain2.com

这应该行不通吗?

<VirtualHost *:443>
   ServerName    non_p_domain1.com
   ServerAlias   non_p_domain2.com
   Redirect 301 / https://permanent_site.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName      permanent_site.com
    DocumentRoot    /path/to/html

    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLHonorCipherOrder on
    SSLCertificateFile /path/to/ssl/permanent_site.com.crt
    SSLCertificateKeyFile /path/to//ssl/permanent_site.com.key
    SSLCertificateChainFile /path/to/ssl/permanent_site.com.ca.crt
</VirtualHost>

这样做的全部目的是防止有人点击https://non_p_domain1.com 并被提供“不安全页面”。相反,我希望他们在访问包含所有 .htaccess 指令的 html 目录之前重定向到永久域。

【问题讨论】:

  • 请求https://non_p_domain1.com时到底发生了什么?
  • 它在 Chrome 中显示“此页面不安全”警告。
  • 这是一个 浏览器 警告,原因是在通过 HTTPS 发出请求时的初始握手期间 SSL 证书无效。除非用户接受无效证书(他们不应该这样做),否则请求永远不会到达您的服务器。

标签: .htaccess ssl redirect https virtualhost


【解决方案1】:

从点击 https://non_p_domain1.com 并获得“不安全页面”

所有非主域也需要安装 SSL 证书。听上去,他们没有?

如果没有,那么客户端将不会(或不应该)连接到您的服务器,因此他们永远不会看到重定向。

【讨论】:

  • 所以,如果我有 700 个网站,并且每个网站大约有 2-3 个域 .. 这是一个巨大的成本中心 .. 这就是我们试图避免必须为所有意图的域使用 SSL和目的只是 CNAME - 所以没有办法让 https://foo 转发到 https://bar 而没有 SSL?对吗?
  • 没有有效的 SSL 证书是不可能的。如果可以的话,那将是 HTTPS 安全模型中的一个严重缺陷。通过 HTTPS 发出请求时,浏览器需要在服务器接收请求之前建立安全连接。如果服务器没有收到请求,则不会发生重定向。
  • 如果没有 SSL 证书,那么您可以做的唯一重定向是从 http://non_p_domain1.com(不安全)到 https://permanent_site.com/。 (不会引起浏览器警告。)
  • 您可以通过“Let's Encrypt”获得免费的 SSL 证书,但有限制。也许只是非主域的免费证书? (那你还需要覆盖 www 子域等?)
猜你喜欢
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 2018-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-12
  • 1970-01-01
相关资源
最近更新 更多