為什麼我的 Java 用戶端無法在 SSL 握手期間傳輸其憑證?
嘗試使用 Java 連線到安全 Web 服務,使用者經常遇到握手失敗的情況。儘管正確配置了金鑰庫和信任庫,但根本問題通常源自於 Java 在握手期間不願意傳輸用戶端憑證。
理解問題:
建議解決方案:
1.位址損壞的憑證鏈:
驗證SubCA 憑證是否正確匯入到金鑰庫中,而不破壞憑證鏈。這可以使用 keytool -v -list -keystore store.jks 來完成。如果每個別名條目只有一個憑證可見,則該鏈可能已損壞。
將憑證鏈匯入金鑰庫:
要解決此問題,請匯入客戶端憑證並將其整個憑證一起放入包含私鑰的密鑰庫別名中。
2.伺服器端的設定問題:
雖然伺服器對SubCA 簽章憑證的請求是合理的,但Java 嚴格遵守該要求可能會產生不必要的限制。據觀察,Chrome 和 OpenSSL 等瀏覽器在這方面更加靈活。
解決方法:
要繞過問題,可以使用另一種方法:
以上是為什麼我的 Java 用戶端在 SSL 握手期間不發送其憑證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!