情況:我有一個帶有共享根 CA 和多個中間 CA 的內部 PKI。我希望任何中間 CA 發布的任何內容都能夠相互信任。有沒有一種方法可以讓大多數程式/語言都滿意?
我目前的理解是這個不是很容易實現,但我想知道我的理解是否有缺陷。
所以如果我們有程序:
- 共享根信任鏈的時髦新鮮=>第一個int
- 具有共享根信任鏈的閃閃發光 => 第二個 int
我絕對需要這兩者之間的相互信任,我唯一的選擇是製作一個大的 CA 證書,並將 root=>first 和 root=>second 相互釘在一起嗎?或者我可以以某種方式擁有一條有根的鏈條嗎?
我可以透過將根添加到作業系統層級信任儲存中來解決所有這些問題,或者如果它們是容器,則將其添加到給定的容器信任儲存中嗎? (在下面/etc/pki/ca-trust/source/anchors
或其他東西)
我的第二個想法,也許這是一個糟糕的想法,但因為一切都是內在的,而且我們有一個 CRL——我們可以僅有的使用根 CA,只需嚴格關注 TLS 憑證和乾淨的 CRL,而不是 CA 級憑證。
如果我在任何地方定義的特定端點公開 CRL 和 CA,是否可以透過某種方式讓軟體建立自己的鏈?
答案1
我不確定我是否正確理解了你的問題,或者你的概念是否正確,但是
- 憑證彼此不信任 - TLS 用戶端反而信任某些憑證授權單位,並從中衍生出對伺服器憑證的信任。
- TLS 用戶端基本上信任受信任 CA 頒發的每個證書,只要它符合期望(例如未過期、匹配主題等)。因此,TLS 用戶端需要知道相關的中間證書,這些證書通常在 TLS 握手中傳送。
因此,如果您希望任何用戶端信任任何證書,無論使用哪個中間 CA,則 a) 用戶端需要信任根 CA,b) 伺服器除了伺服器之外還需要在 TLS 握手期間發送中間 CA證書。