因此,我可以控制一个小型网络服务器,该服务器控制内部网域的子域;该域已启用 HSTS,因此我无法通过 HTTP 连接到我的子域;我也无法使用自签名证书和 HTTPS。我曾考虑过使用 Let's Encrypt 来获取适当的证书,但由于该域无法从互联网访问,我也无法这样做。
有没有办法绕过 HSTS 通过浏览器连接到我的服务器?(如果这很重要的话,我正在尝试设置一个 Jupyter 实例)
答案1
实际上,这是 HSTS 规范中的地址,RFC 6797(重点是我的):
11.3. 将 HSTS 与自签名公钥证书结合使用
如果以下四个条件全部成立...
oa 网站/组织/企业正在为网站生成自己的安全传输公钥证书,并且
[...]
...那么根据 HSTS 设计,与该网站的安全连接将失败。这是为了防止各种主动攻击,如上所述。
[...]
但是,如果该组织希望使用自己的 CA 和自签名证书,并配合 HSTS,则可以通过以下方式实现: 将其根 CA 证书部署到用户的浏览器或操作系统 CA 根证书存储区.此外,它还可以向其用户的浏览器分发特定主机的终端实体证书。
因此,您需要执行以下操作之一:
- 使用 CA 证书(也是您生成的)签署您自己生成的证书,然后将 CA 证书安装到浏览器中(或者如果浏览器使用 OS 存储,则安装到 OS 存储中)
- 将自签名证书安装到浏览器或操作系统商店中
如何安装证书取决于浏览器;这里有多个关于如何执行此操作的答案。
实际上,即使没有 HSTS,您也应该这样做,因为它可以避免常见的证书警告。但是,有了 HSTS,这实际上是唯一的方法。