Maison >Java >javaDidacticiel >Comment configurer les certificats clients Java pour des connexions HTTPS sécurisées ?
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!