【问题标题】:how to redirect https URLs with no SSL to new https domain如何将没有 SSL 的 https URL 重定向到新的 https 域
【发布时间】:2018-03-12 10:30:03
【问题描述】:

情况是这样的……客户公司的网址是https://client.com

客户添加了一个合作伙伴并获得了一个新的公司名称和域名:client-partner.com。

我为 client-partner.com 建立了一个新站点,并将其托管在与 client.com 相同的托管帐户中。当 client-partner.com 上线时,我为 client-partner.com 重新键入了 client.com 的 SSL 证书,并计划 301 将所有 client.com 页面重定向到 client-partner.com 网站上的新页面。

问题是client.com 上所有页面的入站链接都是https。但是 client.com 不再有证书......它现在在 client-partners.com 上。单击指向https://client.com 的旧链接会显示该页面不安全的浏览器错误。用户必须添加一个异常才能通过错误并被重定向到https://client-partner.com 上的正确页面。

是否有任何方法(可能使用 htaccess)将所有传入的 https://client.com 请求重定向到 http://client.com,以便它们可以正确 301 重定向到新页面而不会出现浏览器错误?

【问题讨论】:

    标签: .htaccess http https


    【解决方案1】:

    您需要一个 client.com 的证书才能执行此操作。 使用 SNI(服务器名称指示),您可以在同一个 IP 上拥有两个单独的证书。或者,您可以购买包含两个名称的证书。

    如果您可以在没有 client.com 证书的情况下进行重定向,则攻击者可能会使用 DNS 缓存中毒或其他攻击并接管您的网站。

    【讨论】:

      【解决方案2】:

      需要在DNS中进行更改,即添加别名(CNAME) 示例:

      client.com. CNAME client-partner.com.
      

      【讨论】:

        【解决方案3】:

        因此,您计划将所有内容移至 client-partners.com,但在最终移动完成之前应用了 ssl 更改,那么在 htaccess 中重定向是您最好的方法,这已在此处得到解答:

        Https to http redirect using htaccess

        RewriteEngine On
        RewriteCond %{HTTPS} on
        RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
        

        然而,这并不能解决浏览器隐私错误,因为当请求 HTTPS 页面时,通信过程中的第一件事是建立加密的 TCP 连接,一旦完成,数据传输就会开始,包括请求的页面。

        避免该错误的唯一方法当然是获得一个新证书,您可以从Lets Encrypt 获得一个用于 client.com 的免费 SSL。

        【讨论】:

          猜你喜欢
          • 2019-09-25
          • 2018-04-27
          • 1970-01-01
          • 2022-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-15
          相关资源
          最近更新 更多