所以,这是关于HTTP公钥密封(HPKP)和HTTP严格传输安全(HSTS)的一个有趣的故事。
我正在玩HTST Always和HPKP预加载选项,没有完全意识到后果。
大约在同一时间,我发现我用来“testing”我的“testing”帐户如何能够充分保证用户安全,并不安全。 我正在删除它,重新制作它,有一次我忘了保护它。
这是一个正常的用户,几乎没有权利,我删除了用户,通过杀死用户“testing”拥有的进程。 然后我rm -rfv /home/test/ 。
但是,我仍然觉得没有保存,因此我重新安装了服务器,认为我可以用Let's Encrypt来更新证书,再次添加证书,我们就完成了。
唉,这并不意味着。 当我使用chrome浏览我的网站(*。eurobytes.nl)时,我收到以下消息:
ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN
当浏览我的一个子域Mozilla Firefox,甚至不会显示网站,它只是不去那里。
我假设所有这些都可以通过从Mozilla Firefox / Google Chrome HTST和HPKP列表中除名来解决。
我怎样才能从HTST和HPKP中解脱出来?
其实你无法改变这个 通常你不能访问你的网站访问者的浏览器。
HSTS – HTTP严格传输安全
我假设你只有通过头,而不是通过列表设置HSTS(注册一个域只能通过HSTS预加载HTTPS)。 如果是这种情况,所有访问过您的网站的浏览器都会将您的网域存储为使用HTTPS的偏好,以满足给定的最大年龄。
如果您已经通过https://hstspreload.org/注册了您的域名为HTTPS only网站(包括所有子域名),则必须首先从此列表中删除您的域名(不推荐使用 – 需要相当长的时间)。
HPKP – HTTP公钥固定
同样在这里:您所有的网站访问者已经在您的浏览器中存储了您的域名的允许引脚,并且如果您设置的新SSL证书不符合其中一个引脚,则浏览器不会打开您的网站。
我会build议使用不同的域名。
好的,这里有一些事情要做。
首先,HSTS表示,无论您以前指定浏览器caching的时间,您的网站都必须使用HTTPS。 既然你已经安装了一个新的证书,你仍然使用HTTPS,这不是一个问题,而不是错误信息告诉你什么。
HSTS也可以预加载(硬编码)到浏览器代码中。 但是,即使您已经这样做了,这也不是问题,因为您仍在使用HTTPS。
HPKP表示只有特定的HTTPS证书可以在您的网站上使用。 因为你有一个新的证书不在以前定义的列表上,那就是你的问题所在。
谢天谢地,浏览器不会让你预先装载HPKP,因为我认为这是一个糟糕的主意。
那么如何解决?
从浏览器中删除它。 在Chrome和Opera中,您可以在网页浏览器中inputchrome://net-internals/#hsts ,然后search并删除您的域名,用于HSTS和HPKP。 为Firefox做类似的事情需要编辑一个文件( 详情请看这里 )。 显然,这只适用于你的网站只有less数人使用,你可以访问他们的电脑和/或通过这个谈话。
您等到HPKP策略的到期时间结束。 希望你有一个短的政策到期时间只是testing这个。 Chrome在最多60天内限制HPKP策略(即使您已指定较长的策略)。