Certificates

Let’s encrypts chain.pem 文件到底是什麼?

  • December 29, 2020

在嘗試了解fullchain.pemlet’s encrypt 創建的文件的用途或含義時,我偶然發現了這篇文章,其中fullchain.pem解釋為:

fullchain.pem 是 cert.pem 和 chain.pem 在一個文件中的串聯。在大多數伺服器中,您會將此文件指定為證書,因此將立即發送整個鏈。某些客戶端要求您單獨指定上述兩個文件。在這種情況下,您不需要

chain.pem另一方面被描述為

chain.pem包含中間證書,來自 Let’s Encrypt 的證書包含“耦合”到簽署證書的私鑰(上面的那個)的公鑰。客戶需要此中間證書來驗證您的證書;

但我很難真正理解這意味著什麼。我的意思是什麼是中間證書,它來自哪裡。

我了解 CA 的概念以及 CA 頒發證書的事實。我了解 CA 頒發的使用證書是最終使用者證書。

我也了解信任鏈,在最終使用者證書和根 CA 之間存在中間 CA。

我無法理解的是 let’s encrypt 如何知道根 CA 和最終證書之間的所有可能的中間 CA。

我的意思是可以知道根 CA 本身簽署的所有 CA。但是,如果其他 CA 創建了最終頒發最終使用者證書的其他 CA,這怎麼可能chain.pem呢?

那麼這就引出了一個問題,這些最終使用者證書如何被驗證,因為它似乎是完整的信任鏈,完整的中間 CA 是未知的chain.pem

有好心人幫我理解設置嗎?謝謝!

在請求證書時,向該 CA 發送一個證書籤名請求,其中包含要由 CA 簽名的資訊。CA 以生成的證書和證書鏈返回根進行響應。該鍊是 CA 的證書、簽署 CA 的任何中間 CA 證書(可能是多個級別),以及簽署頂級中間 CA 證書的根證書(如果這與相關 CA 的證書不同) )。在 Let’s Encrypt 的例子中,這個鏈中只有 CA 證書和 Root。

CA 知道鏈中的所有內容,因為他們反過來又從中間 CA 或根請求他們的證書,並且他們知道他們向誰請求證書。所以他們知道中間或根的證書,並且可以包含它。同樣備份鏈條。

根 CA 具有自簽名證書。他們的證書鏈中沒有其他實體。這些證書由瀏覽器供應商(和其他處理 TLS CA 系統的實體)作為受信任的根證書導入,從而允許從這些根開始驗證證書鏈。

由於每次任何人(包括 CA)請求證書時,他們都會取回整個鏈,因此 CA 將鏈與請求生成的證書一起發送是微不足道的。此外,證書是公開的,所有主要的 CA 都會在“證書透明度日誌”中發布他們頒發的證書,因此即使沒有鏈,也可以(理論上)查找每個簽名實體的證書。

引用自:https://crypto.stackexchange.com/questions/87205