我正在使用SSL握手連接到一個URL。 爲此,我生成了一個.csr文件並對其進行了簽名。 簽訂後我才造就了my.jks文件有3項我們應該將KeyStore和TrustStore指向相同的.jks文件嗎?
- 簽名客戶端證書
- 私鑰
- CA
我用碼頭作爲服務器,我已經專門設置keystore和truststore到這樣的jks文件
-Djavax.net.ssl.keyStore=/home/keystore/my.jks
-Djavax.net.ssl.keyStorePassword=changeit
-Djavax.net.ssl.trustStore=/home/keystore/my.jks
-Djavax.net.ssl.trustStorePassword=changeit
它工作正常。但是這是否正確嗎? 我以爲密鑰庫應該包含客戶端證書和私鑰,而信任庫應該包含CA.但是,當我嘗試這樣做,然後我得到以下錯誤。
「javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX路徑建設失敗: sun.security.provider.certpath.SunCertPathBuilderException:無法找到 有效證明路徑請求的目標「
請對此提出建議。
也許將此問題遷移到http://security.stackexchange.com/? – BadSkillz
從您的描述中不清楚究竟是什麼導致該異常。在啓動過程中嗎?在連接到URL時?多一點上下文是必要的。 – laz
@laz是的,它正在建立連接。 –