Nginx 启用HSTS 并加入Preload List

众所周知,HTTP没HTTPS安全,启用HTTPS可以防止运营商劫持还能保护数据传输安全等。而免费SSL证书的申请也很方便,不需要额外的部署成本,因此启用HTTPS的站点也愈来愈多了。但通常情况没有人会在输入地址时补上https://,当客户端发起http请求时仍然可能被劫持。

而当某个站点启用HSTS时,会在HTTPS响应头中插入HSTS响应头,用来告诉浏览器接下来的一段时间内,该域名及其子域名都将强制使用HTTPS协议。当再次访问该站点时,浏览器会先在本地进行307跳转。

但是HSTS并不完美,用户还是可能在第一次访问时就不幸惨遭毒手。因此引入了HSTS Preload List。 Preload List 将域名写死到浏览器里,凡列表里有的,浏览器都会在本地307跳转。

NginX中启用HSTS,只需要在Server块当中添加该语句就可以了。

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";

# max-age:HSTS header过期时间,要加入Preload List至少设置为31536000秒(1年)
# includeSubDomains:包含子域名,加入Preload List必选
# preload:加入Preload List必选

要加入 Preload List ,直接在hstspreload站点提交就可以了。从加入列表到覆盖用户可能需要不少时间。

可以看到本站已经加入 Preload List 了,大概用了三天。但是目前浏览器仍未更新,经验证在Chrome Canary (78.0.3892.0)当中可用。

由任何问题欢迎在下方留言讨论哦

发表评论

电子邮件地址不会被公开。 必填项已用*标注