5.9. Authentification SSL 2-way dans l'Interface de gestion et dans le CLI
L'authentification SSL 2-way, également connu sous le nom authentification du client, authentifie le client et le serveur à l'aide de certificats SSL. Cela garantit que le serveur soit non seulement qui il déclare être, mais le client également.
Dans cette section, on utilisera les conventions suivantes :
- HOST1
- Le nom d'hôte du serveur JBoss. Par exemple ;
jboss.redhat.com
- HOST2
- Un nom qui convient au client. Par exemple :
myclient
. Notez qu'il ne s'agit par forcément d'un nom d'hôte. - CA_HOST1
- Le DN (distinguished name) utilisé pour le certificat HOST1. Par exemple
cn=jboss,dc=redhat,dc=com
. - CA_HOST2
- Le DN (distinguished name) utilisé pour le certificat HOST2. Par exemple
cn=myclient,dc=redhat,dc=com
.
Pré-requis
- Si vous souhaitez utiliser l'archivage de mots de passe pour stocker les mots de passe de keystore et de truststore (recommandé), l'archivage de mots de passe doit déjà avoir été créé. Voir Section 7.1, « Système d'archivage sécurisé de mots de passe ».
Procédure 5.3.
- Générez les stores :
keytool -genkeypair -alias HOST1_alias -keyalg RSA -keysize 1024 -validity 365 -keystore host1.keystore.jks -dname "CA_HOST1" -keypass secret -storepass secret
keytool -genkeypair -alias HOST2_alias -keyalg RSA -keysize 1024 -validity 365 -keystore host2.keystore.jks -dname "CA_HOST2" -keypass secret -storepass secret
- Exportez les certificats :
keytool -exportcert -keystore HOST1.keystore.jks -alias HOST1_alias -keypass secret -storepass secret -file HOST1.cer
keytool -exportcert -keystore HOST2.keystore.jks -alias HOST2_alias -keypass secret -storepass secret -file HOST2.cer
- Importe des certificats dans les trust stores opposés :
keytool -importcert -keystore HOST1.truststore.jks -storepass secret -alias HOST2_alias -trustcacerts -file HOST2.cer
keytool -importcert -keystore HOST2.truststore.jks -storepass secret -alias HOST1_alias -trustcacerts -file HOST1.cer
- Définir un CertificateRealm dans la configuration de votre installation (
host.xml
oustandalone.xml
) et y pointez l'interface :Cela peut se faire en modifiant le fichier de configuration manuellement (non recommandé) ou en utilisant les commandes suivantes :/core-service=management/security-realm=CertificateRealm:add()
/core-service=management/security-realm=CertificateRealm/server-identity=ssl:add(keystore-path=/path/to/HOST1.keystore.jks,keystore-password=secret, alias=HOST1_alias)
/core-service=management/security-realm=CertificateRealm/authentication=truststore:add(keystore-path=/path/to/HOST1.truststore.jks,keystore-password=secret)
Important
Les commandes données ne s'appliquent qu'en mode autonome. Pour le mode domaine, ajoutez/host=master
avant chaque commande. - Modifiez le
security-realm
de l'interface native du domaine de sécurité./host=master/core-service=management/management-interface=native-interface:write-attribute(name=security-realm,value=CertificateRealm)
- Ajoutez la configuration SSL au CLI, utilisant le fichier
EAP_HOME/bin/jboss-cli.xml
pour les configurations. Utilisez soit un archivage de mots de passe pour stocker les mots de passe de keystore ou de truststore (recommandé), ou les stocker en texte brut :- Pour stocker les mots de passe de keystore et de truststore dans un archivage de mots de passe :Modifiez
EAP_HOME/bin/jboss-cli.xml
et ajoutez la configuration SSL (en utilisant les valeurs appropriées pour les variables). Ajoutez également la configuration de l'archivage, en remplaçant chaque valeur par celle de votre archivage.<ssl> <vault> <vault-option name="KEYSTORE_URL" value="path-to/vault/vault.keystore"/> <vault-option name="KEYSTORE_PASSWORD" value="MASK-5WNXs8oEbrs"/> <vault-option name="KEYSTORE_ALIAS" value="vault"/> <vault-option name="SALT" value="12345678"/> <vault-option name="ITERATION_COUNT" value="50"/> <vault-option name="ENC_FILE_DIR" value="path-to/jboss-eap/vault/"/> </vault> <alias>$HOST2alias</alias> <key-store>/path/to/HOST2.keystore.jks</key-store> <key-store-password>VAULT::VB::cli_pass::1</key-store-password> <key-password>VAULT::VB::cli_pass::1</key-password> <trust-store>/path/to/HOST2.truststore.jks</trust-store> <trust-store-password>VAULT::VB::cli_pass::1</trust-store-password> <modify-trust-store>true</modify-trust-store> </ssl>
- Pour stocker les mots de passe de keystore et de truststore en texte brut :Modifiez
EAP_HOME/bin/jboss-cli.xml
et ajoutez la configuration SSL (en utilisant les valeurs appropriées pour les variables) :<ssl> <alias>$HOST2alias</alias> <key-store>/path/to/HOST2.keystore.jks</key-store> <key-store-password>secret</key-store-password> <trust-store>/path/to/HOST2.truststore.jks</trust-store> <trust-store-password>secret</trust-store-password> <modify-trust-store>true</modify-trust-store> </ssl>