Heim > Java > javaLernprogramm > Wie löst man die Ausnahme javax.net.ssl.SSLHandshakeException bei der Verwendung von Java-Client-Zertifikaten mit HTTPS?

Wie löst man die Ausnahme javax.net.ssl.SSLHandshakeException bei der Verwendung von Java-Client-Zertifikaten mit HTTPS?

Patricia Arquette
Freigeben: 2024-11-26 06:17:10
Original
305 Leute haben es durchsucht

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

Java-Client-Zertifikate über HTTPS/SSL

Beim Herstellen von HTTPS-Verbindungen mit Remote-Servern kann es Situationen geben, in denen Sie einen Client präsentieren müssen Zertifikat zur Authentifizierung. Dazu muss das Root-Zertifikat des Servers in einen Truststore importiert werden und das Client-Zertifikat mit seinem Passwort muss korrekt konfiguriert sein.

Um die javax.net.ssl.SSLHandshakeException zu überwinden: sun.security.validator.ValidatorException: Wenn das Problem beim Erstellen des PKIX-Pfads fehlschlägt, müssen Sie das Stammzertifikat des Servers wie folgt in einen Truststore importieren Befehl:

keytool -import -alias gridserver -file gridserver.crt -storepass $PASS -keystore gridserver.keystore
Nach dem Login kopieren

Als nächstes legen Sie die folgenden Eigenschaften fest, um die Keystore- und Truststore-Informationen anzugeben:

-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
Nach dem Login kopieren

Mit dieser Konfiguration können Sie eine HttpsURLConnection erstellen und die SSLSocketFactory für die Verarbeitung des Clients festlegen Zertifikatsüberprüfung:

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

Von dort aus können Sie die Antwort der HTTPS-Verbindung lesen als gewünscht.

Das obige ist der detaillierte Inhalt vonWie löst man die Ausnahme javax.net.ssl.SSLHandshakeException bei der Verwendung von Java-Client-Zertifikaten mit HTTPS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage