Maison >Java >javaDidacticiel >Comment configurer les certificats clients Java pour des connexions HTTPS sécurisées ?

Comment configurer les certificats clients Java pour des connexions HTTPS sécurisées ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-07 12:48:14467parcourir

How Do I Configure Java Client Certificates for Secure HTTPS Connections?

Certificats clients Java pour les connexions HTTPS/SSL

Dans Java 6, la création de connexions HTTPS à l'aide de certificats clients implique un double processus : l'importation le certificat racine auto-signé du serveur dans un truststore et en spécifiant le certificat client et les informations du keystore via le système propriétés.

Importation du certificat racine du serveur

Le certificat racine auto-signé doit être importé dans un truststore. Ceci peut être réalisé à l'aide de la commande :

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

Spécification des informations sur le certificat client

Pour utiliser le certificat client, les propriétés système suivantes doivent être définies :

-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 # for verbose debugging
-Djavax.net.ssl.keyStorePassword=$PASS
-Djavax.net.ssl.trustStorePassword=$PASS

Exemple de code

L'exemple de code suivant montre l'utilisation du certificat client pour un Connexion HTTPS :

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
URL url = new URL("https://gridserver:3049/cgi-bin/ls.py");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
InputStream inputstream = conn.getInputStream();
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
BufferedReader bufferedreader = new BufferedReader(inputstreamreader);

String string = null;
while ((string = bufferedreader.readLine()) != null) {
    System.out.println("Received " + string);
}

En important le certificat racine du serveur dans le truststore et en spécifiant les informations de certificat client nécessaires, Java peut établir avec succès des connexions HTTPS avec les certificats clients.

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