我对如何将所有 http 页面重定向到 https 有一些疑问。
我看到有人告诉我们要像这样重写reply:
阿帕奇说要做this way
任何人都可以向我解释进行此更改的推荐方法是什么
将 http 重定向到 https 的唯一安全方法是使用 HSTS(标头严格传输安全)带有预加载选项。
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>
HSTS
或者,使用 .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
标头严格传输安全 (HSTS) 有 2 个作用:
- 对于访问者来说,它告诉浏览器仅在该域上使用 https以及所有子域一年(所有http请求都会重写为https请求,无需网络交互)
- 对于浏览器供应商来说,“preload”关键字允许他们在源代码中预加载网站。这样,您就可以避免第一个不安全的请求:浏览器已经知道网站提交了 https。注意HSTS+preload不能回滚,这是对安全性的明确承诺(但这就是它的优势:攻击者也无法删除它)
评论中的HSTS是最安全的,但不能回滚:
- 严格传输安全“max-age=31536000;includeSubDomains;预加载”
未注释的 HSTS 不太安全,因为第一个连接仍然不安全,并且不保护子域:
HSTS 是针对 SSLTrip 的唯一可靠保护
SEO 影响:如果网站已经将所有 http 网页重定向到 https,则该标头没有负面(也没有正面)影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)