我的Apache https服务器已返回以下标头作为对https://lab20.example.com的请求的回复:
公钥-销:销-SHA256 =" klO23nT2ehFDXCfx3eHTDRESMz3asj1muO + 4aIdjiuY =&#34 ;;销-SHA256 =" 633lt352PKRXbOwf4xSEa1M517scpD3l5f79xMD9r9Q =&#34 ;;最大年龄= 2592000; includeSubDomains
这些针脚目的无效 - 但仍然谷歌chrome 52允许连接到我的实验室。看起来HPKP无法正常工作。我也测试过: chrome:// net-internals / #hsts - 在查询lab20.example.com之后我确实看到HSTS(确认工作正常)但不是HPKP - 我没有看到任何dynamic_spki_hashes。为什么?
我是否需要激活chrome中的某些内容才能理解和处理HPKP标题?
谢谢,
答案 0 :(得分:0)
如果标题有效,则仅接受标题,然后将其用于将来的访问(在最长时间内)。
指定in the spec:
当且仅当
时,UA必须记下主机的引脚...略...
o TLS连接已通过证书链进行身份验证 包含至少一个由at表示的SPKI结构 至少有一个给定的SPKI指纹(参见第2.6节)。
这是为了阻止您不小心将您的网站打砖,这是一个很好的功能,可以减少意外严重执行HPKP的危险。
然而,它确实使测试不好的HPKP变得非常困难。使用您引用的内部页面手动添加标题,为您的页面获取两个不同的证书,或者在顶级设置有效的标题(使用includesubdomains)并使用不同的子域名证书进行测试。答案 1 :(得分:0)
好的,发现了一个原因,我使用了我的企业CA,但是:
当证书链链接到私人信任锚时,Chrome不会执行引脚验证。此策略的一个关键结果是私有信任锚可用于代理(或MITM)连接,甚至可用于固定站点。 “数据丢失防护”设备,防火墙,内容过滤器和恶意软件可以使用此功能来破坏密钥锁定的保护。