HSTS

最近在折腾代码仓库,把私有的项目托管到 OneDev,OneDev 挂载到 NAS 上,可以通过 VPN 回家,访问速度即快,代码存储又安全。

但是想配置一个好记好看的域名,碰到了一个大问题。

fuckyou Porkbun.

1.dev

1.dev / one.dev 通过 dns 重定向,怎么样都无法访问. 但是用 curl 就没问题

通过浏览器 network 来看,直接访问 HTTP,看样子是 307 重定向到了 HTTPS。

但是这个重定向有蹊跷,是不走HTTP端口的,直接伪造请求重定向了。

原因是因为 HSTS。只要服务器响应过一次 HSTS,那么后续就会直接来进行HTTPS访问。那行吧,得把这个规则清除掉。

Delete HSTS policies

chrome 可以访问 chrome://net-internals/#hsts 可以 Delete domain security policies 进行删除。

把 1.dev 输入进去 删除,然后再 Query,怎么TMD 删不掉。what’s happening

仔细看了 Delete policies 下面有一行小字: You cannot delete preloaded entries.

难道这东西是默认的?

Preload policies

可以在这里 查询 Preload 的规则:

https://hstspreload.org/?domain=1.dev

果不其然,在里面,怪不得删不掉。

Conclusion

1.dev 这个域名,没有被使用,但仍然上了 Preload 的规则,这就会导致 所有的用户都只能从 HTTPS 访问。

而 HTTPS 就是为了防篡改的,但这个点会影响内部使用,内网无法颁发这个域名的 HTTPS 证书,所以这个资源就被闲置,也无法被私有化使用。

目前我能找到私有化可用的本地域名:

  • .local (mDNS, 这是自动的,不建议手动设定)
  • .nas
  • .lan

可公开的 https 域名

  • .nip.io

Refs: