小赖子的英国生活和资讯

再谈 HSTS

阅读 桌面完整版

最近从坛子Leonax 了解到 还有 一个叫HSTS = HTTP Strict Transport Security 的玩意, 怎么能不折腾. 于是就弄了一下 申请了 今天一查 也加入了浩浩荡荡的大队伍中了.

HSTS 简单来说就是强制 HTTPS. 这需要分两步, 第一步是你的服务器声明 愿意放弃HTTP强制所有访问为安全的HTTPS. 第二步是向几大浏览器 提起申请. 在没有正式接受之前 只要用户第一次访问之后 浏览器还是会记住你的HSTS爱好 并且之后都会强制 HTTPS 而不是 由服务端 通过 301转向.

APACHE2站点配置文件/etc/apache2/sites-enabled里 你需要在SSL节点加入一行即可.

1
Header always set Strict-Transport-Security "max-age=15552000; includeSubdomains; preload"
Header always set Strict-Transport-Security "max-age=15552000; includeSubdomains; preload"

max-age 就是指定这约定的有效期 单位是秒 需要至少 18周(10886400 秒). 保存配置文件之后就可以通过命令 /etc/init.d/apache2 restart or service apache2 restart 进行重启.

CloudFlare CDN 可以进行更为简单傻瓜话的一键设置:

hsts-cloudflare

在配置好之后 就可以向这个网站 提交申请 [https://hstspreload.appspot.com/], 大概需要几天的时间就可以审核通过.

hsts-preloaded-list

有用的链接:
CHROME浏览器列表: https://chromium.googlesource.com/chromium/src/net/+/master/http/transport_security_state_static.json
火狐FIREFOX浏览器列表: https://mxr.mozilla.org/mozilla-aurora/source/security/manager/ssl/nsSTSPreloadList.inc
检查浏览器是否支持HSTS约定: http://caniuse.com/#search=HSTS

这样之后 你就保证在有效期之前 网站就是HTTPS 如果想反悔就比较麻烦 要记住 一旦浏览器记住你的约定 你的网站如果突然哪天没有HTTPS 这种情况下是访问不了的. 嗯.哪天CLOUDFLARE不支持免费SSL就惨了.

英文: https://helloacm.com/two-domains-hsts-http-strict-transport-security/

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version