安裝包含 bundle-ca 的 PFX,我還需要在 root 中安裝 ca-authority 嗎?
我有一個 Windows Web 伺服器,通常我在“LocalMachine\Root”中安裝 ca-authority,在“LocalMachine\My”中安裝中間 PFX 證書,一切正常。現在我想知道,如果在 PFX 證書生成期間我包含 ca-bundle,我是否可以避免在“LocalMachine\Root”中安裝 ca-authority,而只在“LocalMachine\My”中安裝包含 bundle-ca 的 PFX?
根 CA 證書通常安裝在與 PKCS#12 (PFX) 文件中證書的 TLS 連接的另一端。
如果 PKCS#12 文件包含客戶端身份驗證證書及其私鑰和頒發它的 CA 證書(以及可能的其他中間 CA 證書),則該鏈安裝在您的設備中並用於向遠端伺服器驗證您的身份。如果該伺服器信任該根 CA,則該伺服器應在其信任錨儲存中安裝該根 CA,該根 CA 用於驗證來自客戶端提供的 PKCS#12 的證書。
非常相似,如果 PKCS#12 文件包含伺服器身份驗證證書及其私鑰和頒發它的 CA 的證書(以及可能的其他中間 CA 證書),則鏈安裝在您的伺服器中並用於向您的伺服器進行身份驗證設備。如果您信任根 CA,您的設備應該在其信任錨儲存中安裝根 CA,它使用它來驗證來自伺服器提供的 PKCS#12 的證書。
也就是說,PKCS#12 只是一個容器,因此允許證書和密鑰的其他組合,但以上是兩個最常見的案例。
如果您在 PKCS#12 中安裝所有證書,這並不意味著您信任其中的任何根 CA 證書。您信任的人/事物不是雙邊的——這是您的選擇。您需要明確做出該選擇以確保系統的完整性。
例如,如果您在 Firefox 瀏覽器上安裝 PKCS#12,以便您可以登錄網站,那麼在 Firefox 的信任錨儲存中的 PKCS#12 中自動安裝任何根 CA 是沒有意義的。您可能不想信任該根 CA 來驗證 Web 伺服器,而僅用於驗證客戶端。也就是說,您信任哪些根 CA 不是由 Firefox 開發人員決定的。
同樣,如果您在 Windows 伺服器中安裝 PKCS#12,它可以將這些證書提供給連接到它的任何客戶端,並且這些客戶端(如果它們在其信任錨儲存中安裝了根 CA 證書)將信任該伺服器。但是,這並不自動意味著您要信任從該根 CA 提供給您的伺服器的其他證書,例如客戶端身份驗證證書。
底線是 - 由您決定信任什麼。