【发布时间】:2016-08-28 09:46:16
【问题描述】:
我对如何将我所有的 http 页面重定向到 https 有一些疑问。
我看到有人告诉我像 reply 那样重写:
Apache 在this way 中说要做
任何人都可以向我解释进行此更改的推荐方法是什么
【问题讨论】:
标签: apache .htaccess http ssl https
我对如何将我所有的 http 页面重定向到 https 有一些疑问。
我看到有人告诉我像 reply 那样重写:
Apache 在this way 中说要做
任何人都可以向我解释进行此更改的推荐方法是什么
【问题讨论】:
标签: apache .htaccess http ssl https
将 http 重定向到 https 的唯一安全方法是使用带有预加载选项的 HSTS(Header Strict-Transport-Security)。
apache 重定向是不安全的,因为攻击者可以拦截并重写它。不幸的是,对于较旧的浏览器和未预加载 HSTS 的浏览器,这是您唯一的选择:
<VirtualHost *:80>
ServerName www.example.com
Redirect "/" "https://www.example.com/"
</VirtualHost>
在 https 响应中:
<VirtualHost *:443>
# Use HTTP Strict Transport Security to force client to use secure connections only
# Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header always set Strict-Transport-Security "max-age=31536000"
# Further Configuration goes here
[...]
</VirtualHost>
或者,使用 .htaccess:
# Redirect if http
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# set header if https
# Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
Header Strict-Transport-Security (HSTS) 有 2 个作用:
评论中的 HSTS 是最安全但无法回滚的:
未在评论中的 HSTS 安全性较低,因为第一次连接仍然可能不安全,并且不保护子域:
HSTS 是针对 SSLTrip 的唯一可靠保护
SEO 影响:如果网站已经将所有 http 网页重定向到 https,则该标头没有负面(也没有正面)影响。
【讨论】:
在 /etc/apache2/sites-available/yoursite.conf 中的 Document Root 下方或上方添加
永久重定向/https://your-site.com/
【讨论】: