对于新网站和内置于浏览器中的网站,我可以选择哪些选项来禁用 HSTS?
使用 HTTPS 检查本质上会通过充当中间人来改变网站的指纹;访问之前未进行 HTTPS 检查的网站或预加载的网站之一将导致无法访问网站。除了禁用检查外,我还有什么选择(如果有的话)?
以下是 Chrome 中带有 HTTPS 检查的 Gmail 的示例:
背景
我正在设置新的防火墙,并尝试清理 HTTPS 检查规则。我真的避免将可能包含用户贡献内容的网站添加到列表中,例如 mail.google.com / gmail.com。
自从我上次这样做以来HSTS / HTTP 严格传输安全已经变得更加普遍。
注意 - 我试图保持通用性,因为这可能是许多不同设置的问题。我希望有一种跨操作系统/跨浏览器的方法,可以适用于任何防火墙产品,但这要求有点高。使用 Windows (7+) 关注(IE、Chrome、Firefox)将是一个很好的开始。以组策略为中心的方法也非常有用。
答案1
你在这里混淆了一些不同的事情,我怀疑这会引导你得出一些错误的结论。
- HSTS(“HTTP 严格传输安全”)(仅仅!)强制要求使用 HTTPS 连接指定站点。它不强制要求使用哪些密钥、证书等来验证连接。
- 公钥固定指定,如果与给定名称建立 HTTPS 连接,则证书链必须包含给定的公钥白名单之一,否则该连接被视为无效。
由于 HTTPS 检查(不幸的是)是一种广泛部署的做法,因此浏览器的普遍做法是,以本地安装的根 CA 证书结尾的证书链不受公钥固定检查。我发现了一个Chrome 的 Adam Langley 的声明关于 Chrome 的行为(“MITM 代理、Fiddler 等怎么样?”部分),但我对其他浏览器的体验也类似。
我确信屏幕截图中显示的问题不是浏览器卡在了密码上,而是浏览器根本无法识别证书链接到受信任的 CA 证书。这将触发 HSTS 故障,因为“使用 HTTPS”更准确地指定为“使用适当安全的 HTTPS,包括安全密码和受信任的证书进行身份验证”。我建议仔细检查 MitM 代理的根 CA 证书是否已正确安装并被正在使用的浏览器识别为有效。