首頁 > Java > java教程 > 如何解決「sun.security.provider.certpath.SunCertPathBuilderException:無法找到請求目標的有效憑證路徑」?

如何解決「sun.security.provider.certpath.SunCertPathBuilderException:無法找到請求目標的有效憑證路徑」?

Patricia Arquette
發布: 2024-12-21 19:18:12
原創
411 人瀏覽過

How to Resolve

解決「sun.security.provider.certpath.SunCertPathBuilderException:無法找到要求目標的有效憑證路徑」異常

提供的程式碼從HTTPS 伺服器下載文件,但遇到與憑證相關的錯誤。當伺服器提供用戶端 JVM 不信任的自簽名憑證時,通常會發生此錯誤。

要解決此問題,您可以指示客戶端信任伺服器的憑證。操作方法如下:

使用瀏覽器取得伺服器的憑證

  1. 在瀏覽器中存取 HTTPS 伺服器。
  2. 點擊中的鎖定圖示網址列並查看證書詳細資料。
  3. 將憑證匯出為文件,通常帶有.cer 或 .crt 副檔名。

將憑證新增至 JVM 的信任庫

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

  • 編輯JAVA_HOME/jre/lib/security/cacerts:

    1. 使用Java keytool 公用程式開啟的位於/JAVA_HOME/jre/lib/security 檔案/jre 。
    2. 使用-importcert指令匯入匯出的憑證。例如:

      keytool -keystore cacerts -importcert -file my_server_cert.cer
      登入後複製
  • 使用-Djavax.net.ssl.trustStore 參數:

    您可以透過設定Java系統指定不同的信任庫位置屬性:

    java -Djavax.net.ssl.trustStore=/path/to/my_truststore
    登入後複製

注意:確保使用正確的 JDK/JRE 版本,因為它會影響 cacerts 檔案的位置。

透過信任證書,您可以授權客戶端在缺乏受信任的 CA 的情況下與伺服器進行通訊。但要注意的是,如果伺服器的憑證不可信,這可能會帶來安全風險。

以上是如何解決「sun.security.provider.certpath.SunCertPathBuilderException:無法找到請求目標的有效憑證路徑」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板