Ssl

如何解決 Windows Server 上 LetsEncrypt 證書鏈的問題?

  • October 20, 2021

我一直在使用 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 證書儲存似乎使用它找到的第一個結果(按字母順序?)建構證書鏈,結果是成為舊的“X1”證書。

這就是問題出現的地方。對於某些客戶端/瀏覽器(如 Chrome)來說,這很好,他們只查看中間證書的密鑰。但是,其他客戶端更嚴格,也會檢查名稱,然後失敗(X1 而不是 X3)。

我解決此問題的第一步是刪除 X1 中間證書,並確保我的所有伺服器證書都已更新為由 X3 頒發。現在事情看起來是正確的,至少在 Windows 的證書儲存中(鏈正確顯示 Root Authority -> X3 -> server cert)。

我現在陷入困境並且似乎無法弄清楚的問題是為什麼客戶端繼續顯示錯誤的證書鏈(X1)。我可以看到,該中間證書甚至不再存在於我的伺服器上。

我已經嘗試過通常的重啟伺服器,也偶然發現了這個類似的文章,在那裡嘗試了幾次沒有任何運氣的步驟 -

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

任何線索我可能會錯過什麼?IIS 記憶體證書鏈似乎存在一些問題,因為我嘗試在多個客戶端/機器上進行連接並且都有相同的問題。只是不知道如何清除這個“證書鏈記憶體”,或者它是否存在。

我剛剛在我的伺服器上解決了這個問題。這是在 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上發布了一個解決方案有不少人正在報到上班

引用自:https://serverfault.com/questions/767164