Apache force SSL

问题描述:

我在尝试将传入的请求重定向到https://www.domain.com/和全部https://www.domain.com/ {所有页面}并且没有什么问题。方法我试过:Apache force SSL

  1. 添加此行:Redirect permanent/https://www.domain.com/httpd.conf引起太多的重定向

  2. 使用的.htaccess mod_rewrite的与在302页感动带着一颗破碎的链接结束重定向。

我要的是:

  1. 重定向所有请求HTTPS://www.domain.com/,包括HTTP://www.domain.com/signup和这样的网页,以HTTPS版本

我搜索这个很多线程,但他们似乎并不适用于我的设置。我应该如何处理这个问题?

它是这样:

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

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

+0

这是我有什么$ 1中。它仅适用于hxxp://www.domain.com/。如果您转到hxxp://www.domain.com/account/(在我的情况下,它是/ var/www/account的Apache别名),它不会更改URL。 – tmrhmdv 2012-01-07 20:17:16

有这种方法明显的问题 - 如果你做一个自动非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。

RewriteEngine On 
RewriteCond  %{HTTPS} Off 
RewriteRule  ^(.*)$  https://%{HTTP_HOST}$1 [R,L] 

通知其追加的路径信息