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

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

Linda Hamilton
Lepaskan: 2025-01-01 14:39:10
asal
312 orang telah melayarinya

How to Resolve

Tidak Dapat Menemui Laluan Pensijilan yang Sah di Java

Apabila menghadapi ralat "sun.security.provider.certpath.SunCertPathBuilderException: tidak dapat mencari laluan pensijilan yang sah ke sasaran yang diminta" semasa menyambung ke pelayan https, ia menunjukkan masalah dengan pengesahan sijil.

Punca:

Ralat ini berlaku apabila JVM tidak dapat mengesahkan rantai sijil pelayan. Ini mungkin disebabkan oleh menggunakan sijil yang ditandatangani sendiri atau JVM tidak mempercayai pihak berkuasa sijil yang mengeluarkan sijil pelayan.

Penyelesaian:

1. Tambahkan Sijil pada Kedai Dipercayai:

Untuk menyelesaikan isu apabila menggunakan sijil yang ditandatangani sendiri, anda boleh menambah sijil pada kedai amanah JVM anda. Ini melibatkan mengakses stor kunci Java, biasanya terletak di JAVA_HOME/jre/lib/security/cacerts dan menambah sijil pelayan sebagai pihak berkuasa yang dipercayai.

2. Gunakan -Djavax.net.ssl.trustStore Parameter JVM:

Sebagai alternatif, anda boleh menentukan lokasi kedai amanah tersuai menggunakan parameter JVM -Djavax.net.ssl.trustStore apabila melancarkan aplikasi Java anda . Ini membolehkan anda mengekalkan stor amanah yang berasingan tanpa mengubah suai stor kunci sistem.

3. Sahkan JDK/JRE:

Pastikan anda menggunakan JDK atau JRE yang betul yang dikaitkan dengan versi Java yang diperlukan oleh aplikasi anda. Versi JDK/JRE yang tidak sepadan boleh membawa kepada isu pengesahan sijil.

4. Selesaikan Pengecualian Nama Alternatif:

Jika anda menghadapi pengecualian "java.security.cert.CertificateException: Tiada nama yang sepadan dengan localhost ditemui," ini menunjukkan bahawa nama alternatif subjek sijil (SAN) tidak sepadan dengan hos yang anda akses. Sahkan kesahihan SAN dan nama hos, atau sebagai alternatif, kemas kini tetapan Java untuk menerima sijil kad bebas.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'sun.security.provider.certpath.SunCertPathBuilderException: tidak dapat mencari laluan pensijilan yang sah kepada sasaran yang diminta' dalam Java?. 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