Authentification par certificat client Java HTTPS
Lors de l'authentification avec des certificats de serveur, les clients Java doivent présenter les informations d'identification suivantes :
Client Keystore
Le keystore client, au format PKCS#12, contient les éléments suivants :
Exemple de commande pour générer le magasin de clés :
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12 -name "Whatever"
Client Truststore
Le truststore client, dans JKS format, contient les certificats CA racine ou intermédiaires qui déterminent les points de terminaison approuvés.
Exemple de commande pour générer le truststore :
keytool -genkey -dname "cn=CLIENT" -alias truststorekey -keyalg RSA -keystore ./client-truststore.jks -keypass whatever -storepass whatever keytool -import -keystore ./client-truststore.jks -file myca.crt -alias myca
Processus d'authentification
Lorsque le serveur demande l'authentification du client lors de la négociation TLS, il fournit une liste d'autorités de certification de confiance. Si le certificat client est signé par l'une de ces autorités de certification, il sera présenté pour authentification.
Considérations supplémentaires :
Utilisation d'Apache HttpClient
Pour utiliser HttpClient pour HTTPS avec l'authentification client :
-Djavax.net.debug=ssl -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStore=client.p12 -Djavax.net.ssl.keyStorePassword=whatever -Djavax.net.ssl.trustStoreType=jks -Djavax.net.ssl.trustStore=client-truststore.jks -Djavax.net.ssl.trustStorePassword=whatever
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!