[摘自https://stackoverflow.com/questions/39937837/]
我已将 DNS 设置为指向local.example.com
127.0.0.1。这样我就可以在实时网站和开发环境之间共享 cookie。
在实时网站上激活 HSTS 后,我的浏览器会自动尝试访问本地网站https://local.example.com/ 但它不起作用,因为我的开发服务器不支持 SSL(我曾尝试在端口 443 上提供服务)。
有没有办法指示我的浏览器(Chromium)忽略 HSTS?
(从我读过的内容来看,includeSubDomains
避免 cookie 劫持攻击非常重要 - 基本上我只想为自己包含子域例外)。
答案1
我不确定这是否对您的具体情况有帮助(并且您知道这个“解决方案”),但一种可能的方法是清除浏览器 HSTS 缓存。也许还可以将其映射到特殊键(组合),这将使调用它变得更容易。
使用 Chromium 进行操作的方法如下:
- 关闭与出现问题的页面相关的所有打开的标签。
- 在新标签页中输入
chrome://net-internals/#hsts
。 - 找到部分标题“查询域”,在“域:”旁边的文本字段中输入遇到问题的域,然后按下标有的按钮Query。
- 搜索查询框下方出现的所有域名都需要删除。
- 找到部分标题“删除域”,在“域:”旁边的文本字段中输入遇到问题的域,然后按下标有的按钮Delete。
- 重复步骤 3 到 5,直到步骤 3 中的查询结果显示“未找到”。
- 关闭浏览器然后重新打开,您的问题现在应该已经解决。
附加说明:这仅当您的域名不属于HSTS 预加载列表。
答案2
不,无法添加例外。但是 HSTS 只声明必须有有效证书,而没有声明是哪个证书(有 HPKP 标头),因此您可以生成自己的自签名证书,将其作为受信任证书导入 chrome,这样 HSTS 即使在本地主机上也能正常工作。