就算世界终结,也无所谓

愿你有一天,能与你最重要的人重逢

HSTS Preloaded!

《HSTS Preloaded!》


As we know,我在去年年底到今年年初的时间给 DreamCity 上了 HTTPS,用的是腾讯云的免费 DV SSL 证书,签发 CA 是上海的亚洲诚信。虽然我也很想要赛门铁克的证书,但是我已经不想再用阿里云的任何服务了(阿里云的免费证书的签发 CA 是赛门铁克)…

然后在今年 4 月我了解到了 HSTS,出于安全性考虑就又给 DreamCity 加上了 HSTS 的 HTTP 头。当然那时有点蠢,在 www 子域名上加了这个头,还加了 includeSubDomain。所以说自然没什么用 2333

什么是 HSTS?

HSTS 的全称是 HTTP Strict Transport Security,它的作用是作用是强制客户端使用 HTTPS 与服务器创建连接。这个头部将会被缓存在浏览器中。采用 HSTS 的网站将保证浏览器始终连接到该网站的 HTTPS 加密版本而不需要用户手动在 URL 地址栏中输入 HTTPS。且如果服务器发送的 TLS 证书无效,用户将不能忽略浏览器警告继续访问网站。

当时就已经在考虑要不要把 littleqiu.net 添加到 HSTS Preload List 中。最后为了方便折腾,也就没有把域名提交到 HSTS Preload List 中。但是到六月底我中考完出去旅游之前,我突然觉得只使用 HSTS 头并不是那么安全,毕竟如果访客以 HTTP 的方式第一次访问 DreamCity 的时候还没有缓存 DreamCity 的 HSTS 头,也没有 HTTPS 的加密,有可能在第一次访问的时候就遭受中间人攻击。而且 littleqiu.net 域名接下来也不打算做什么了,其他子域名也都上了 HTTPS,就申请了 HSTS Preload List。

HSTS Preload List 又是什么?

顾名思义,HSTS Preload List 就是 HSTS 预加载列表。这是个由 Google 和 Mozilla 等互联网巨头牵头的项目。这个列表将会内置在浏览器中并且会随着浏览器的更新而一起更新。不管你有没有访问过这个站点,只要域名在这个预加载列表中,就会强制以 HTTPS 方式访问,这样即使是第一次访问也不会遭受中间人攻击了。

在众多大佬中我应该算是跟风上 HSTS Preload List 比较迟的了。出门旅游那天下午申请了主域名 littleqiu.net 的 HTTPS 证书(因为 HSTS 头部要添加在主域名,不然 includeSubDomain 和没加一样。话说腾讯云什么时候支持申请主域名的证书了,我今年年初申请 DreamCity 的证书的时候还是不支持的啊。顺便吐槽一下腾讯云这届员工效率不行啊,以前使用域名 CNAME 解析验证的时候基本是秒签证书,自打改成 TXT 解析验证之后就至少要等两小时才能签发证书了),装上之后提交到了 HSTS Preload List 进行审核。审核速度还是比较久的,大概我 7 月 20 日查询才发现审核通过了。等待 Chrome/Chromium 和 Firefox 更新应该要几个月到半年的时间,至于各大国产套壳浏览器…我就呵呵一声不说话。

点赞
由于 LiveRe 使用的头像 API 不支持 HTTPS,现在已经禁用了 QQ、微信和微博的 OAuth 登录。
我也不想就这样因噎废食,但事实是我根本没有能力去搭建一个反代。
如果你发现了有评论被删除的痕迹,八成是这些评论使用的 OAuth 方式是 QQ 或者微信或者微博。