Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

17.7.4. Créer un keystore Java pour stocker des strings sensibles

Conditions préalables

  • La commande keytool fournie par le Java Runtime Environment (JRE). Chercher le chemin du fichier qui se trouve à l'emplacement suivant /usr/bin/keytool dans Red Hat Enterprise Linux.

Avertissement

Les implémentations de keystore JCEKS diffèrent entre les fournisseurs Java. Vous devez générer le keytool à l'aide du même fournisseur que le JDK que vous utilisez.
Si vous utilisez un keystore généré par un 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

Procédure 17.7. Installation d'un Java keystore

  1. 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 est EAP_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.
  2. 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 jceks est 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 storepass est 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 keypass est le mot de passe utilisé pour accéder à la clé spécifique et doit correspondre à la valeur du paramètre storepass.
    validité
    La valeur de validitéest la durée (en jours) pendant laquelle la clé sera valide.
    keystore
    La valeur du keystore correspond 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 commande keytool a plusieurs options. Consultez la documentation de votre JRE ou de votre système d'exploitation pour obtenir plus d'informations.
  3. Exécuter la commande keytool

    Lancer votre interface de ligne de commandes de votre système d'exploitation et exécuter la commande keytool, 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
Résultat

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.