Java SSL 握手中客戶端憑證遺漏
SSL 握手期間Java 的行為有時會導致客戶端憑證遺漏,從而導致握手失敗。當伺服器請求由某個CA(在本例中為「RootCA」)簽署的用戶端憑證時,就會出現此問題,而Java 只能在Keystore 中找到由下級CA(「SubCA」)簽署的用戶端證書。
金鑰庫設定注意事項:
伺服器設定注意事項:
解決方案:
要修正此問題,用戶端憑證及其憑證鏈(包括「SubCA」憑證)應合併為單一檔案(例如,bundle.pem)。然後可以使用 keytool -importcert -keystore store.jks -alias myalias -file bundle.pem 將這個捆綁的 PEM 檔案匯入到儲存用戶端私鑰的 Keystore 別名中。透過這樣做,Java 將識別完整的憑證鏈並在 SSL 握手期間發送適當的憑證。
以上是當伺服器請求不同 CA 簽署的客戶端憑證時,為什麼我的 Java SSL 握手會失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!