Rumah >Java >javaTutorial >Bagaimana untuk Menyelesaikan javax.net.ssl.SSLHandshakeException Apabila Menggunakan Sijil Pelanggan Java dengan HTTPS?

Bagaimana untuk Menyelesaikan javax.net.ssl.SSLHandshakeException Apabila Menggunakan Sijil Pelanggan Java dengan HTTPS?

Patricia Arquette
Patricia Arquetteasal
2024-11-26 06:17:10307semak imbas

How to Resolve javax.net.ssl.SSLHandshakeException When Using Java Client Certificates with HTTPS?

Sijil Pelanggan Java melalui HTTPS/SSL

Apabila mewujudkan sambungan HTTPS dengan pelayan jauh, mungkin terdapat senario di mana anda perlu membentangkan pelanggan sijil untuk pengesahan. Ini memerlukan sijil akar pelayan diimport ke kedai amanah dan sijil pelanggan dengan kata laluannya dikonfigurasikan dengan betul.

Untuk mengatasi javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Pembinaan laluan PKIX isu gagal, anda mesti mengimport sijil akar pelayan ke kedai amanah menggunakan yang berikut arahan:

keytool -import -alias gridserver -file gridserver.crt -storepass $PASS -keystore gridserver.keystore

Seterusnya, tetapkan sifat berikut untuk menentukan maklumat stor kunci dan truststore:

-Djavax.net.ssl.keyStoreType=pkcs12
-Djavax.net.ssl.trustStoreType=jks
-Djavax.net.ssl.keyStore=clientcertificate.p12
-Djavax.net.ssl.trustStore=gridserver.keystore
-Djavax.net.debug=ssl # very verbose debug
-Djavax.net.ssl.keyStorePassword=$PASS
-Djavax.net.ssl.trustStorePassword=$PASS

Dengan konfigurasi ini, anda boleh mencipta HttpsURLConnection dan menetapkan SSLSocketFactory untuk mengendalikan klien pengesahan sijil:

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
URL url = new URL("https://gridserver:3049/cgi-bin/ls.py");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);

Dari sana, anda boleh membaca respons daripada sambungan HTTPS sebagai dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan javax.net.ssl.SSLHandshakeException Apabila Menggunakan Sijil Pelanggan Java dengan HTTPS?. 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