Maison >Java >javaDidacticiel >Comment résoudre l'exception javax.net.ssl.SSLHandshakeException lors de l'utilisation de certificats clients Java avec HTTPS ?

Comment résoudre l'exception javax.net.ssl.SSLHandshakeException lors de l'utilisation de certificats clients Java avec HTTPS ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-26 06:17:10314parcourir

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

Certificats client Java sur HTTPS/SSL

Lors de l'établissement de connexions HTTPS avec des serveurs distants, il peut y avoir des scénarios dans lesquels vous devez présenter un client certificat d'authentification. Cela nécessite que le certificat racine du serveur soit importé dans un truststore et que le certificat client avec son mot de passe soit configuré correctement.

Pour surmonter l'exception javax.net.ssl.SSLHandshakeException : sun.security.validator.ValidatorException : Problème d'échec de la création du chemin PKIX, vous devez importer le certificat racine du serveur dans un truststore à l'aide de la commande suivante :

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

Ensuite, définissez le propriétés suivantes pour spécifier les informations du keystore et du 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

Avec cette configuration, vous pouvez créer une HttpsURLConnection et configurer SSLSocketFactory pour gérer la vérification du certificat client :

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

À partir de là, vous pouvez lire la réponse de la connexion HTTPS comme vous le souhaitez.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn