無法找到要求目標的有效憑證路徑
透過 Java 從 HTTPS伺服器下載檔案時,您可能會遇到以下錯誤:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
了解錯誤
此錯誤表示客戶端-伺服器驗證有問題。 HTTPS 伺服器使用憑證建立安全連線。客戶端(Java 程式)必須信任伺服器的憑證才能繼續下載。
可能原因:伺服器有自簽名憑證
自簽名憑證是不是由受信任的機構發布的。 Java的預設信任庫不包含這些證書,導致身份驗證失敗。
解決方案
要忽略客戶端-伺服器驗證,可以將伺服器的憑證加入Java中信任商店。方法如下:
1.取得憑證:
2.將憑證新增至信任儲存區:
有兩種方法可以執行此操作:
a 。使用 keytool:
keytool -import -trustcacerts -alias myalias -file certificate.cer
b.使用 -D 參數:
-Djavax.net.ssl.trustStore=mytruststore.jks
3.將certificate.cer和mytruststore.jks替換為實際的檔案名稱。
將憑證新增至信任儲存區後,您的Java程式應該能夠從HTTPS伺服器下載文件,而不會出現驗證錯誤.
以上是為什麼我的 Java 程式無法下載 HTTPS 檔案並顯示「無法找到請求目標的有效憑證路徑」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!