ELS 修復可用於讓我們加密證書更改
Let's Encrypt是一種獲取證書並在各種應用程式中實施TLS加密的實用方法。從頒發的證書數量來看,它是世界上最大的證書頒發機構(CA)。由於其方便的更新機制,它也被廣泛用於自動化場景。
Let's Encrypt 預設認證鏈中的根證書最近過期(2021 年 9 月 30 日)會導致舊版 OpenSSL 出現嚴重問題。然而,Centos 6/Oracle Linux 6/CloudLinux 6 中的 OpenSSL 版本的補丁已經可用,應該儘快為所有受影響的系統部署。
在 Let's Encrypt 證書鏈(DST 根 CA X3)中過期的根證書將保留在鏈中,直到 2024 年。最新版本的 OpenSSL 會正確忽略過期的證書,並使用鏈中存在的備用證書進行驗證,但舊版本的 OpenSSL 將無法通過驗證。這會導致嚴重的問題,因為TLS連接將在不應該失敗時失敗。不幸的是,默認情況下,「certbot」實用程式本身將無法更新鏈並續訂Let's Encrypt證書(這將解決問題)。
此問題會影響多個 Linux 發行版及其版本,但我們的擴展生命週期支持涵蓋的版本已經具有解決此問題的 OpenSSL 補丁。這樣做的方式是默認啟用OpenSSL中的標誌X509_V_FLAG_TRUSTED_FIRST,這基本上意味著驗證應該在“好”證書可用時首先嘗試,而不是在發現“壞”(讀取:過期)證書時失敗。以這種方式修復該問題還將進一步防止將來在其他證書過期時發生類似事件,無論是在Let's Encrypt還是任何其他證書鏈中。
如果您想以另一種方式解決問題,該方式不能解決OpenSSL中的潛在問題,但只是繞過當前問題,則可以按 如下方式運行「certbot」:
certbot 更新 – 試運行 – 首選鏈 “ISRG 根 X1”
或者,在 /etc/letsencrypt/renewal/ 中,添加
preferred_chain = ISRG 根 X1
這將允許 certbot 獲取證書,而忽略包含過期根證書的證書鏈。但是,同樣,這並不能解決OpenSSL在應該繼續的情況下失敗的問題,因此根證書或中間證書過期的未來事件(Let』s Encrypt相關或任何其他證書鏈)將繼續導致問題。