启用HSTS和申请HSTS Preload List

HSTS是“HTTP Strict Transport Security”(HTTP严格安全传输)的缩写,开启了这项设置以后,主流浏览器会强制性地使用HTTPS来请求资源,能够更加有效地保护你网站和用户的数据安全。一般情况(未启用HSTS),浏览器会允许用户在了解了安全风险之后继续使用不安全的连接来访问,但如果启用了HSTS,则不允许这样做,所以你得有一定要长期使用HTTPS的打算,才能启动HSTS。

首先本站linpx.com加入了 Chrome 的 HSTS Preload List 了,在 chromium 的 transport_security_state_static.json 中可以查看

启用HSTS

HSTS 是一个响应头,格式如下:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload;
  • max-age,单位是秒,用来告诉浏览器在指定时间内,这个网站必须通过 HTTPS 协议来访问。也就是对于这个网站的 HTTP 地址,浏览器需要先在本地替换为 HTTPS 之后再发送请求

  • includeSubDomains,可选参数,如果指定这个参数,表明这个网站所有子域名也必须通过 HTTPS 协议来访问

  • preload,可选参数,预加载到浏览器缓存

HSTS 这个响应头只能用于 HTTPS 响应;网站必须使用默认的 443 端口;必须使用域名,不能是 IP。而且启用 HSTS 之后,一旦网站证书错误,用户无法选择忽略。

这里贴一个 Nginx 开启 HSTS 的简易教程

打开网站所对应的Nginx的conf配置文件

假设我的配置文件是在 /usr/local/nginx/conf/vhost 的目录

vim /usr/local/nginx/conf/vhost/www.linpx.com.conf

加入

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

···
申请Preload List

HSTS 必须要在浏览器访问过你的网站一次以后才会生效,如果希望提前生效,需要申请 HSTS Preloading List。

目前这个 Preload List 由 Google Chrome 维护,Chrome、Firefox、Safari、IE 11 和 Microsoft Edge 都在使用。如果要想把自己的域名加进这个列表,首先需要满足以下条件:

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

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

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

  • 输出 HSTS 响应头:

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

    • 必须指定 includeSubdomains 参数;

    • 必须指定 preload 参数;

觉得妥了就去 HSTS Preload List (hstspreload.appspot.com) 这个页面申请。

在唯一一个文本框输入你的网站即可,这个列表是人工审核,因此可能需要一段时间

3123123.png

已经成功加入HSTS网站是这样的效果

318752.png

特别提醒:对于 HSTS 以及 HSTS Preload List,如果你不能确保永远提供 HTTPS 服务,就不要启用。因为一旦 HSTS 生效,你再想把网站重定向为 HTTP,之前的老用户会被无限重定向,唯一的办法是换新域名。

大概就这样了,本篇文章是对上一篇文章(Nginx的SSL配置优化)的补充。

同时,因为已经看了很多遍QuQu的文章,很熟悉也很认同他说述的 所以本文比较多部分参考了:imququ.com/post/sth-about-switch-to-https.htm

转载于:https://my.oschina.net/Twitter/blog/1094066

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值