【问题标题】:Apache force SSLApache 强制 SSL
【发布时间】:2016-03-04 00:41:26
【问题描述】:

我正在尝试将传入请求重定向到 https://www.domain.com/ 和所有 https://www.domain.com/{all pages} 并且没有什么问题。我试过的方法:

  1. 将这一行:Redirect permanent / https://www.domain.com/ 添加到我的httpd.conf 会导致重定向过多

  2. 使用 .htaccess 通过 mod_rewrite 进行重定向以 302 Moved page with a broken link 结束。

我想要的是:

  1. 将所有请求重定向到 https://www.domain.com/,包括 http://www.domain.com/signup 和类似的页面到 https 版本

我已经搜索了很多关于此的主题,但它们似乎不适用于我的设置。我应该如何处理?

【问题讨论】:

    标签: apache mod-rewrite ssl


    【解决方案1】:

    这种方法有一个明显的问题 - 如果您自动将非 SSL 重定向到 SSL 网页,您将失去 SSL 应提供的安全性。即,如果有人可以 MITM 您的非 SSL Web 服务器,他们可以重定向到他们自己的有效 SSL 服务器(使用真实证书),并且浏览器不会知道其中的区别。

    http://www.example.com 重定向到https://www.example.com,可以被中间人破坏,其中伪造的http://www.example.com 重定向到https://i-will-steal-your-credit-card.com,并且只要i-will-steal-your-creditcard.com 具有有效证书,浏览器不会提醒用户有任何问题,用户会看到小锁图标并认为一切正常并开始输入信用卡号码。

    最好有一个页面来解释他们真正想要的是 URL 的 SSL 版本和可点击的链接。当然,坏人也可以做同样的事情,但偏执的人总是会验证他们点击的链接实际上是链接到它所说的内容。

    当然,大多数人并不偏执,并且会对额外的步骤感到不满 - 因此,如果您有任何营销人员在您的上游做出决定 - 很有可能您最终会这样做 http->https 自动重定向.这是因为营销和客户通常不了解 SSL。

    【讨论】:

      【解决方案2】:

      是这样的:

      RewriteEngine On
      RewriteCond %{HTTPS} off
      RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
      

      来源:http://systembash.com/content/force-https-ssl-access-url-apache/

      【讨论】:

      • 这就是我所拥有的。它仅适用于 hxxp://www.domain.com/。如果您访问 hxxp://www.domain.com/account/(在我的例子中是 /var/www/account 的 Apache 别名),它不会更改 URL。
      【解决方案3】:
      RewriteEngine On
      RewriteCond     %{HTTPS}   Off
      RewriteRule     ^(.*)$     https://%{HTTP_HOST}$1 [R,L]
      

      注意 $1 附加路径信息

      【讨论】:

        猜你喜欢
        • 2013-08-25
        • 1970-01-01
        • 2012-05-03
        • 2015-11-02
        • 2010-10-23
        • 2015-09-16
        • 2023-04-07
        • 2015-10-04
        • 2012-02-02
        相关资源
        最近更新 更多