首頁 >Java >java教程 >為什麼我的 Java 程式無法下載 HTTPS 檔案並顯示「無法找到請求目標的有效憑證路徑」?

為什麼我的 Java 程式無法下載 HTTPS 檔案並顯示「無法找到請求目標的有效憑證路徑」?

DDD
DDD原創
2024-12-20 18:12:16397瀏覽

Why Does My Java Program Fail to Download HTTPS Files with

無法找到要求目標的有效憑證路徑

透過 Java 從 HTTPS伺服器下載檔案時,您可能會遇到以下錯誤:

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

了解錯誤

此錯誤表示客戶端-伺服器驗證有問題。 HTTPS 伺服器使用憑證建立安全連線。客戶端(Java 程式)必須信任伺服器的憑證才能繼續下載。

可能原因:伺服器有自簽名憑證

自簽名憑證是不是由受信任的機構發布的。 Java的預設信任庫不包含這些證書,導致身份驗證失敗。

解決方案

要忽略客戶端-伺服器驗證,可以將伺服器的憑證加入Java中信任商店。方法如下:

1.取得憑證:

  • 使用瀏覽器導覽至網站。
  • 點選網址列中的鎖定圖示。
  • 選擇「證書」並將證書匯出為 CER 或 CRT檔案。

2.將憑證新增至信任儲存區:

有兩種方法可以執行此操作:

a 。使用 keytool:

  • 開啟命令提示字元。
  • 導覽至 JAVA_HOME/jre/lib/security。
  • 執行下列指令:
keytool -import -trustcacerts -alias myalias -file certificate.cer

b.使用 -D 參數:

  • 使用下列參數執行 Java應用程式:
-Djavax.net.ssl.trustStore=mytruststore.jks

3.將certificate.cer和mytruststore.jks替換為實際的檔案名稱。

將憑證新增至信任儲存區後,您的Java程式應該能夠從HTTPS伺服器下載文件,而不會出現驗證錯誤.

以上是為什麼我的 Java 程式無法下載 HTTPS 檔案並顯示「無法找到請求目標的有效憑證路徑」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn