如何解决Windows Server上的LetsEncrypt证书链问题?

我一直在使用LetsEncrypt在Windows 2012 R2服务器上为我的网站生成证书。 它工作得很好,直到最近我更新证书。

LetsEncrypt最近做了一个改动,他们把名字为“Let's Encrypt Authority X1”的中间证书换成名字为“Let's Encrypt Authority X3”的证书。 问题是,更新证书的权限密钥保持不变。

https://community.letsencrypt.org/t/upcoming-intermediate-changes/

所以,当我更新服务器证书时,他们现在是“X3”权威的问题,但是由于密钥是一样的,Windows证书商店似乎build立了证书链,find了第一个结果(按字母顺序)成为旧的“X1”证书。

这是问题出现的地方。 对于某些客户端/浏览器(如Chrome)来说,这很好,他们只看中间证书的关键。 但是,其他客户端更严格,也检查名称,然后失败(X1而不是X3)。

我解决这个问题的第一步是取消X1中间证书,并确保我的所有服务器证书已更新为由X3颁发。 现在事情看起来是正确的,至less在Windows中的证书存储(链正确显示根授权 – > X3 – >服务器证书)。

我现在卡住的问题,似乎无法弄清楚,为什么客户继续显示错误的证书链(X1)。 中间证书甚至不存在在我的服务器上,我可以看到。

我尝试了通常的重新启动服务器,也偶然发现了这个类似的post,尝试了几次没有任何运气的步骤 –

https://serverfault.com/a/706278/182874

任何线索我可能会失踪? IIS高速caching证书链似乎有一些问题,因为我尝试连接多个客户端/机器,都有相同的问题。 只是没有线索如何清除这个“证书链高速caching”,或者如果它甚至存在。

我刚刚在我的服务器上解决了这个问题。 这是在2008R2。

  1. 确保所有的证书都使用新的中间证书,因为我们要删除旧证书
  2. 从本地计算机和所有本地用户帐户中删除X1中间证书
  3. 删除每个证书在IIS中的安全绑定
  4. 在IIS中重新添加每个安全绑定

2012R2还有一些额外的问题,在https://community.letsencrypt.org/t/iis-8-5-building-incorrect-chain-with-lets-encrypt-authority-x3/13320/84有不less人正在报告工作