Rumah > Java > javaTutorial > ## Mengapakah klien Java saya mendapat ralat \'Pembinaan laluan PKIX gagal\' semasa mengakses perkhidmatan web HTTPS?

## Mengapakah klien Java saya mendapat ralat \'Pembinaan laluan PKIX gagal\' semasa mengakses perkhidmatan web HTTPS?

Barbara Streisand
Lepaskan: 2024-10-26 17:52:03
asal
579 orang telah melayarinya

## Why does my Java client get a

Pembinaan Laluan PKIX Gagal: Tidak Dapat Menemui Laluan Pensijilan Sah ke Sasaran yang Diminta

Soalan:

Apabila cuba mengakses perkhidmatan web HTTPS tertentu menggunakan klien Java, pengecualian berikut ditemui:

java.lang.RuntimeException: PKIX path building failed: unable to find valid certification path to requested target
Salin selepas log masuk

Jawapan:

Pengecualian ini menunjukkan bahawa Pelanggan Java tidak dapat mewujudkan sambungan selamat dengan perkhidmatan web disebabkan masalah dengan rantaian sijil yang dibentangkan oleh pelayan.

Penyelesaian yang Mungkin:

  1. Konfigurasikan Kedai Amanah:

    Pelanggan mungkin tidak mempunyai sijil yang diperlukan dipasang di kedai amanahnya. Untuk menyelesaikan masalah ini, tetapkan sifat sistem untuk menentukan laluan ke kedai amanah dan kata laluannya:

    <code class="java">System.setProperty("javax.net.ssl.trustStore", "clientTrustStore.key");
    System.setProperty("javax.net.ssl.trustStorePassword", "password");</code>
    Salin selepas log masuk
  2. Sijil Pelayan Import:

    Jika kedai amanah pelanggan tidak mengandungi sijil pelayan, importnya secara manual. Ikut langkah berikut:

    • Eksport sijil pelayan dalam format PEM (cth. certificate.crt) menggunakan alat seperti openssl.
    • Tukar fail PEM kepada X binari Fail sijil .509 (cth., certificate.der):

      <code class="shell">openssl x509 -in certificate.pem -out certificate.der -outform DER</code>
      Salin selepas log masuk
    • Import fail DER ke dalam stor amanah pelanggan menggunakan utiliti alat kunci:

      <code class="shell">keytool -import -alias server_cert -file certificate.der -keystore clientTrustStore.key</code>
      Salin selepas log masuk
  3. Kemas kini Konfigurasi SSL Java:

    Pastikan konfigurasi SSL Java ditetapkan dengan betul. Contohnya, dengan mengubah suai ~/.java/jre/lib/security/jssecacerts atau menggunakan arahan berikut:

    <code class="shell">keytool -import -alias server_cert -file certificate.der -keystore cacerts</code>
    Salin selepas log masuk
  4. Lumpuhkan Pengesahan Sijil SSL (Tidak Disyorkan):

    Sebagai langkah sementara, anda boleh melumpuhkan pengesahan sijil SSL, tetapi ini tidak disyorkan kerana kebimbangan keselamatan:

    <code class="java">HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true);</code>
    Salin selepas log masuk
  5. Dapatkan Sijil Berbeza:

    Jika perkhidmatan web memerlukan sijil tertentu, dapatkan sijil itu dan pasangkannya di kedai amanah pelanggan.

Atas ialah kandungan terperinci ## Mengapakah klien Java saya mendapat ralat \'Pembinaan laluan PKIX gagal\' semasa mengakses perkhidmatan web HTTPS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan