17.7.4. Créer un keystore Java pour stocker des strings sensibles
Conditions préalables
- La commande
keytoolfournie par le Java Runtime Environment (JRE). Chercher le chemin du fichier qui se trouve à l'emplacement suivant/usr/bin/keytooldans Red Hat Enterprise Linux.
Avertissement
keytool à l'aide du même fournisseur que le JDK que vous utilisez.
keytool de JDK d'un fournisseur dans une instance JBoss EAP exécutant dans un JDK provenant d'un fournisseur différent, vous aurez l'exception suivante :
java.io.IOException: com.sun.crypto.provider.SealedObjectForKeyProtector
java.io.IOException: com.sun.crypto.provider.SealedObjectForKeyProtector
Procédure 17.7. Installation d'un Java keystore
Créez un répertoire pour stocker votre keystore et autres informations cryptées.
Créez un répertoire qui contiendra votre keystore et d'autres informations pertinentes. Le reste de cette procédure assume que le répertoire estEAP_HOME/vault/. Comme le répertoire devra contenir des informations sensibles, il devra être accessible à un nombre restraint d'utilisateurs. Le compte d'utilisateur sous lequel JBoss EAP exécute requiert au minimum un accès en lecture-écriture.Déterminer les paramètres à utiliser avec la commande
keytool.Choisissez les valeurs des paramètres suivants :- alias
- L'alias est un identificateur unique pour l'archivage sécurisé ou autres données stockées dans le keystore. Les alias sont insensibles à la casse.
- storetype
- Le storetype indique le type de keystore. La valeur
jceksest conseillée. - keyalg
- L'algorithme à utiliser pour le cryptage. Consultez la documentation de votre JRE et de votre système d'exploitation pour étudier vos possibilités.
- keysize
- La taille d'une clé de cryptage impacte sur la difficulté de décrypter au seul moyen de la force brutale. Pour plus d'informations sur les valeurs appropriées, voir la documentation distribuée avec
keytool. - storepass
- La valeur de
storepassest le mot de passe utilisé pour authentifier le keystore, et pour que la clé puisse être lue. Le mot de passe doit contenir au moins 6 caractères de long et doit être fourni quand on accède au keystore. Si vous omettez ce paramètre, on vous demandera de le saisir quand vous exécuterez la commande. - keypass
- La valeur de
keypassest le mot de passe utilisé pour accéder à la clé spécifique et doit correspondre à la valeur du paramètrestorepass. - validité
- La valeur de
validitéest la durée (en jours) pendant laquelle la clé sera valide. - keystore
- La valeur du
keystorecorrespond au chemin et nom du fichier dans lequel sont stockés les valeurs du keystore. Le fichier de clés est créé lorsque les données y sont ajoutées.Assurez-vous d'utiliser le séparateur de chemin d’accès correct du fichier:/(barre oblique inverse) pour Red Hat Enterprise Linux et systèmes d'exploitation similaires, et\pour les serveurs Microsoft Windows.
La commandekeytoola plusieurs options. Consultez la documentation de votre JRE ou de votre système d'exploitation pour obtenir plus d'informations.Exécuter la commande
keytoolLancer votre interface de ligne de commandes de votre système d'exploitation et exécuter la commandekeytool, en fournissant les informations que vous avez collectées.
Exemple 17.16. Créer un Java keystore
keytool -genseckey -alias vault -storetype jceks -keyalg AES -keysize 128 -storepass vault22 -keypass vault22 -validity 730 -keystore EAP_HOME/vault/vault.keystore
$ keytool -genseckey -alias vault -storetype jceks -keyalg AES -keysize 128 -storepass vault22 -keypass vault22 -validity 730 -keystore EAP_HOME/vault/vault.keystore
Un keystore aura été créé dans le fichier EAP_HOME/vault/vault.keystore. Il stocke une clé unique, dans l'archivage sécurisé alias, qui sera utilisé pour stocker les strings cryptés, comme les mots de passe, dans JBoss EAP.