我目前正在努力為我的 java 應用程式中的所有外向 HTTPS 通信實施 SSL 信任,包括禁止在強化模式下使用自簽名證書。
但是,我想知道 SSL Trust 如何以及是否始終值得信賴。您能幫我了解以下有關 Java 中信任庫的詳細資訊嗎?SSL 信任完全取決于我們信任存盤的內容(我們建立信任的信任錨)
- 默認的 Java 證書存盤是否會自動保持更新,即如果出現新的 CA(除非安裝了 Java 升級包)?
- 信任存盤中的受信任根 CA 資訊是否需要不斷更新以維護 SSL 安全?
uj5u.com熱心網友回復:
- Java 信任庫僅在您更新 JRE 時更新。如果你想添加新的 CA 證書,你需要自己做。根據我的經驗,如果您保持 JRE 是最新的,這對于公共 CA 來說是不必要的。
- 不,您不需要更新資訊。在最壞的情況下,您的信任庫中的證書太舊,您無法連接到服務器,這不是安全問題。
uj5u.com熱心網友回復:
據我所知,默認的 java cacert 檔案僅通過包更新/升級來更新。
需要不斷更新,因為 CA 根證書過期或被撤銷,必須從 cacertfile 中洗掉。另一方面,新的 CA 根證書被發布并且必須包含在內。但是此更新依賴于 1。
深入一點:
如果您在服務器端設定 HTTPS,則:
您需要一個私鑰和一份由任何官方證書頒發機構(如 Entrust、Baltimore CyperTrust)簽署的證書(或創建一個自簽名證書)。您必須設定一個包含私鑰和簽名證書的 java 密鑰庫。證書本身具有有限的有效性,必須在到期前更新,您必須監控。在續訂時,CA 會注意始終使用 CA 根證書,該證書與續訂的證書一樣有效。
連接到您的服務器的客戶端通過 SSL 握手接收您的服務器證書,并根據它的信任庫驗證它,在默認配置和 java 駐留在 jre-xyz/lib/security/cacerts 的情況下。此檔案在每次 Java 更新時都會更新,您可以依賴它的實際情況。
如果您額外使用基于證書的客戶端身份驗證,則由您來保持所需的客戶端證書是最新的。通常,您的伙伴會在證書到期前向您發送續訂證書的副本。
或者,您可以僅實施客戶端的 CA 根證書。在這種情況下,您無需花費太多精力來使信任庫保持最新。回撤是您獲得客戶驗證的機會較少。
如果您在客戶端,則比:
默認配置中的客戶端根據 Java 附帶的 cacert 檔案驗證服務器證書。
除了默認配置 - 如果您只信任某些特定服務器 - 您負責設定信任庫并使其保持最新狀態。這個 trustsore 等同于上面描述的用于客戶端身份驗證的那個,但包含服務器的東西。
至少,如果您需要客戶端身份驗證,您必須設定一個客戶端密鑰庫,它相當于上面解釋的服務器密鑰庫,但保留客戶端的東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/385694.html
上一篇:sectionHeaderTopPadding不適用于Grouped和InsetGroupedUITableView
