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
Libérer: 2024-11-26 06:17:10
original
332 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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);
Copier après la connexion

À 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal