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
Patricia ArquetteOriginal
2024-11-26 06:17:10380Durchsuche

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

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

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);

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!

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