我正在尝试在nginx 1.7.12( Public-Key-Pins )中设置公钥密docker,但是我似乎错过了一些东西。 我知道如何生成相关的pin-sha256字段。
我认为它会这样工作:
pin-sha256 (也不包括任何中间或根证书),那么这应该是错误的,浏览器应该:
report-uri端点 真的发生了什么
在Firefox的情况下,仅仅是一个The site specified an invalid Public-Key-Pins header. 在控制台的警告和访问照常进行(如果1没有警告,所以标题应该是正确的)。 在Chrome中,没有任何一个sha256值可以与当前证书相匹配,这个访问一直在进行。
(在Arch Linux上使用Firefox 37和Chrome 41进行testing)。
我错过了什么? Public-Key-Pins头部的实际行为应该如何,以及如何在设置中触发错误,以便testing失败情况?
我目前的标题是这样的forms(短的最大年龄testing,正确填写FQDN :
Public-Key-Pins: pin-sha256="XOwgEECL9p3X2PctwnsIvbV+ySJ975dNYbm8wxkjzXg="; pin-sha256="NxVoMtbt/y2GI3lV/ROFIcDyz8kj/W8JTtoszmBezOg="; pin-sha256="aM2laE5XUTDaWo6RnfKZ9OZHrNz/KQmRxCRO6YmWHGE="; max-age=900; report-uri="https://<FQDN>/hpkp";
要被接受,你的销售必须:
testing它:
一些文档: https : //developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning
更具体地说:“如果我不包含证书的pin-sha256(也没有任何中间或根证书)”,那么浏览器不保存这个pin 。 仅当已保存的引脚列表与当前证书链不匹配时,浏览器才会显示连接错误。
https://scotthelme.co.uk/hpkp-toolset和https://report-uri.io/home/pkp_analyse可以帮助