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
466 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!

sumber:php.cn
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