Rumah >Java >javaTutorial >Bagaimana untuk Menyelesaikan 'sun.security.provider.certpath.SunCertPathBuilderException: tidak dapat mencari laluan pensijilan yang sah ke sasaran yang diminta'?

Bagaimana untuk Menyelesaikan 'sun.security.provider.certpath.SunCertPathBuilderException: tidak dapat mencari laluan pensijilan yang sah ke sasaran yang diminta'?

Patricia Arquette
Patricia Arquetteasal
2024-12-21 19:18:12357semak imbas

How to Resolve

Menyelesaikan "sun.security.provider.certpath.SunCertPathBuilderException: tidak dapat mencari laluan pensijilan yang sah ke sasaran yang diminta" Exception

Kod yang disediakan cuba memuat turun fail daripada pelayan HTTPS tetapi menghadapi ralat berkaitan sijil. Ralat ini sering berlaku apabila pelayan membentangkan sijil yang ditandatangani sendiri yang tidak dipercayai oleh JVM pelanggan.

Untuk menangani isu ini, anda boleh mengarahkan pelanggan untuk mempercayai sijil pelayan. Begini caranya:

Ambil Sijil Pelayan Menggunakan Penyemak Imbas

  1. Lawati pelayan HTTPS dalam penyemak imbas anda.
  2. Klik ikon kunci dalam bar alamat dan lihat butiran sijil.
  3. Eksport sijil sebagai fail, biasanya dengan .cer atau sambungan .crt.

Tambahkan Sijil pada Kedai Amanah JVM

Terdapat dua cara untuk melakukannya:

  • Sunting JAVA_HOME/jre/lib/security/cacerts:

    1. Buka fail cacerts yang terletak di /JAVA_HOME/jre/lib/security/ dengan utiliti alat kunci Java.
    2. Import sijil yang dieksport menggunakan arahan -importcert. Contohnya:

      keytool -keystore cacerts -importcert -file my_server_cert.cer
  • Gunakan Parameter -Djavax.net.ssl.trustStore:

    Anda boleh tentukan lokasi kedai amanah yang berbeza dengan menetapkan sistem Java harta:

    java -Djavax.net.ssl.trustStore=/path/to/my_truststore

Nota: Pastikan anda menggunakan versi JDK/JRE yang betul, kerana ia mempengaruhi lokasi fail cacerts.

Dengan mempercayai sijil, anda membenarkan pelanggan untuk berkomunikasi dengan pelayan walaupun tiada CA yang dipercayai. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ini mungkin memperkenalkan risiko keselamatan jika sijil pelayan tidak boleh dipercayai.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'sun.security.provider.certpath.SunCertPathBuilderException: tidak dapat mencari laluan pensijilan yang sah ke sasaran yang diminta'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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