如何给自己的网站添加HSTS

什么是HSTS

HSTS(“HTTP Strict Transport Security” HTTP严格安全传输)是一种响应头,像这样

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload;

他可以防止你的网站在第一次http请求中被劫持,导致无法正常访问。


本来我想图方便,直接让七牛将HSTS部署在他的边缘节点上,然后去面板里逛了一圈,发现这面板里没有这个设置,甚至连tls允许版本都没有,明明隔壁又拍云都有(小声bb)
没办法,联系客服也只能做到开HSTS,而且怎么整都只有30天


于是,只能自己动手了


这里我们主要说Nginx的配置,只需要给nginx添加一行headers规则就好了
在nginx.conf末尾添加

add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";

max-age代表缓存HSTS头的时间,这里是一年(以秒为单位)
includeSubdomains代表为子域名开启HSTS
preload代表预加载到浏览器缓存


申请Preload List

有HSTS头已经能很大程度上的避免被劫持,但是缺点是需要正常访问一次才能缓存HSTS头,如何做到不需要访问一次,让浏览器自动强制使用HTTPS呢?
当然,是有的,Preload list是一个由 Google Chrome 维护,Chrome、Firefox、Safari、IE 11 和 Microsoft Edge 都在遵从的HSTS域名列表
如果要想把自己的域名加进这个列表,首先需要满足以下条件:

拥有合法的证书(如果使用 SHA-1 证书,过期时间必须早于 2016 年);

    将所有 HTTP 流量重定向到 HTTPS;

    确保所有子域名都启用了 HTTPS;

    输出 HSTS 响应头:

        max-age 不能低于 18 周(10886400 秒);

        必须指定 includeSubdomains 参数;

        必须指定 preload 参数;

如果全部都已经完成了的话,就可以去HSTS Preload List申请,但是周期可能会很长,因为是人工审核,目前本站也在申请中,成功了的话我会回来更新文章,写写经验

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇