今天帮朋友调试网站的时候,调试控制台出来了大量的“Public-Key-Pins:该网站指定的一个头没有包含匹配的 Pin。”这种提示。我朋友非常着急的找到了,认为是出了什么天大的事情。
原因:
其实,这个不能算是说是什么BUG问题吧!也不能说是报了什么错误吧!这个其实就是网站的HTTP公钥固定(HPKP)没有配置正确的所导致的。
解决办法
解决办法也非常的简单,要么删除HPKP配置的代码,要么就正确配置HPKP。具体请大家先看一下:
HTTP公钥固定(Public Key Pinning)扩展:HPKP 详解
下现谈谈我是怎么解决“Public-Key-Pins:该网站指定的一个头没有包含匹配的 Pin”这个问题的。
我朋友用的WEB服务是Nginx,他是直接在nginx.conf 里面配置的,这本身没什么问题。
有问题的是:配置的代码他是直接在网上复制的, pin-sha256=“”的值也是直接复制过来的,没有用openssl去生成,提示不匹配的Pin也就很正常了。
我直接告诉他要么重新配置,要么删除此段代码,由于某些原因,重新配置不了,我就告诉他:要么不删除就这么着吧!
最后由于我朋友的网站也需要做SEO,因此就没有删除。这里可能大家不懂,因为:百度有一个“HTTPS安全检测“,如果你网站做了HTTPS,一般来说“HTTPS证书有效性”都能通过,HTTPS安全部署就不一定了,我网朋友这样做,可以达到让“HTTPS安全部署”能全部通过,这样的话,网站的SEO优化各方面就会得到提升。
总结:任何项目或许或多或少都会有一些提示,只要不影响项目的业务,我觉得没必要担心,世上没有十全十美的东西,有优点就有缺点。