亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果客戶端在密鑰庫中有多個證書,將選擇哪個 SSL 證書

如果客戶端在密鑰庫中有多個證書,將選擇哪個 SSL 證書

胡子哥哥 2024-01-05 16:48:33
您能幫我解決以下兩個問題嗎?我有一個連接到 FIX 服務器的 FIX 引擎。有一個 FIX 服務器要求客戶端在 SSL 握手期間驗證自身身份。它還提供了一個 SSL 證書,我需要在 SSL 握手期間將其用作客戶端證書。問題#1:我可以將多個證書(私鑰)存儲在密鑰庫中,以便稍后加載到我的 FIX 引擎中嗎?問題#2:如果問題#1 的答案是肯定的,那么當 SSL 上下文與服務器建立 SSL 連接時,SSL 上下文將如何在 SSL 握手期間選擇客戶端證書?注意-我正在考慮這些問題,因為將來可能會有其他服務器也有類似的要求。
查看完整描述

3 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

問題#1:我可以將多個證書(私鑰)存儲在密鑰庫中,以便稍后加載到我的 FIX 引擎中嗎?

就 Java 而言,您絕對可以在一個密鑰庫文件或其他存儲對象中擁有多個私鑰條目,每個私鑰條目都包含一個私鑰以及證書或(通常)鏈。(請注意,如果您使用 PKCS12與其他軟件交換,其他軟件可能不支持一個 PKCS12 中的多個條目。如果您使用 PKCS12 只是為了提高 Java 中的安全性,或者為了消除 j9+ 中的警告,則不必擔心。)

我不知道您使用的是什么 FIX 引擎,也不知道它如何處理 TLS(以前稱為 SSL)的密鑰和證書信息(或者實際上它如何處理 TLS)。如果它只是將密鑰庫文件(或流)加載為 KeyStore 對象,則適用上述 Java 功能。如果它做了其他事情,它能做什么取決于其他事情。

問題#2:如果問題#1 的答案是肯定的,那么當 SSL 上下文與服務器建立 SSL 連接時,SSL 上下文將如何在 SSL 握手期間選擇客戶端證書?

在 TLS 協議中,當服務器請求客戶端使用證書時,它會指定算法約束(1.2 中的葉密鑰算法和/或 1.2 和 1.3 中的鏈簽名算法),并且可以指定所需的證書頒發機構 (CA) 列表)(可能已頒發鏈中的任何證書)。

如果您的客戶端(FIX 引擎)使用 TLS (JSSE) 的 Java 標準實現及其標準(默認)“SunX509”KeyManager,則會從密鑰庫中選擇一個滿足服務器上述約束的條目;如果您選擇或配置“NewSunX509”或“PKIX”KeyManager,它還會檢查為您的 JVM 定義的任何算法約束(例如,自 2017 年左右開始,Oracle JVM 禁止使用基于 MD5 或 SHA1 的簽名的證書,或小于 1024 的 RSA 密鑰位),并優先考慮證書未過期且不具有不適當的 KeyUsage 或 ExtendedKeyUsage 擴展的條目。在多個可接受或首選條目中,選擇是任意的——但是密鑰庫實現枚舉了它們。大多數服務器支持所有標準(可能是且未過時的)算法,并且通常無法以此來區分。如果服務器接受來自 Digicert、GoDaddy、LetsEncrypt 等“公共”CA 的證書,這些證書也不太可能不同,但如果它使用特定于該服務器或其運營商的 CA(或可能幾個),則此類 CA 名稱將通常是唯一的,因此只會為該服務器選擇密鑰和證書。

如果您的客戶端使用自定義 KeyManager——無論是在應用程序中顯式使用還是通過中間件(例如 Apache HttpClient)——它可以執行不同的操作。它甚至可以選擇使用服務器將拒絕的密鑰和證書,盡管這通常被認為沒有用。

如果您的客戶端使用不同的 TLS 實現,則可以使用標準 KeyManager 結構,可能使用上面的選項,或者可以執行其他任何操作。


查看完整回答
反對 回復 2024-01-05
?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

如果您使用 spring 框架,您可以通過添加來指定您喜歡選擇的證書別名

-Dserver.ssl.key-alias=your_preffered_alias


查看完整回答
反對 回復 2024-01-05
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

您說您有一個連接到 FIX 服務器的 FIX 引擎,然后詢問私鑰是否可以存儲在您的 FIX 引擎的密鑰庫中。這讓我相信 FIX 引擎位于客戶端應用程序中。您不應將私鑰公開存儲在密鑰庫中。相反,您應該向客戶端提供僅包含證書的信任庫。

查看完整回答
反對 回復 2024-01-05
  • 3 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號