Bootstrap

关于HSTS - 强制浏览器使用HTTPS与服务器创建连接

前几天用谷歌浏览器访问一个网站, 浏览器提示, 原因是网站的证书过期了.

本想着要忽略掉这个错误继续访问的, 结果点击按钮之后, 并没有一个的链接可以点击, 于是花了点时间研究了一下提示信息, 见下图:

图中最后一段话提到了

那么HSTS是个啥❓ , 为什么使用了之后只要证书过期就无法访问❓

带着这个问题, 我跑到图书馆借了一本关于HTTPS的专业书Google了一下, 终于找到了答案.

🎉🎉🎉

HSTS, 全称: HTTP Strict Transport Security, 是国际互联网工程组织 IETF 正在推行一种新的Web安全协议, 它的作用是强制客户端(如浏览器)使用 HTTPS 与服务器创建连接。

采用 HSTS 协议的网站将保证浏览器始终连接到该网站的 HTTPS 加密版本,不需要用户手动在 URL 地址栏中输入加密地址。

该协议将帮助网站采用全局加密,用户看到的就是该网站的安全版本。

HSTS 的作用是强制客户端(如浏览器)使用 HTTPS 与服务器创建连接。服务器开启 HSTS 的方法是,当客户端通过 HTTPS 发出请求时,在服务器返回的超文本传输协议响应头中包含 字段。

非加密传输时设置的 HSTS 字段无效!

比如,https://xxx.com 的响应头含有

这意味着两点:

同时为了防止用户首次安装浏览器或者手动清除了本地关于 HSTS 网站的状态导致的安全问题, Chrome 同时维护了一个叫做 的网站列表, 访问这个列表中的网站默认使用 规则, 如:

  • Google

  • Paypal

  • Twitter

  • Simple

  • Linode

  • Stripe

  • Lastpass

如果你自己的网站也开启了 的支持并且希望将自己的网站放入这个列表中, 可以在 提交申请.

HSTS 目前已经被主流浏览器(Chrome, Firefox, Safari, Opera, Edge, IE)支持, 如果你的网站是 HTTPS 的, 不妨试着开启 HSTS 的支持, 强制客户端与服务器使用 https 协议进行数据的交换来提高安全性.

参考链接: