2017-08-22 5 views
0

J'ai un certificat générique que je veux installer dans un serveur Glassfish v4. Après avoir converti le format de certificat et l'avoir importé dans le keystore java (en utilisant les commandes déjà abordées dans d'autres rubriques), nous devons configurer le fichier domain.xml pour inclure un mot de passe pour JKS. Quelque chose comme:Installation d'un certificat dans Glassfish v4 sans stockage de mot de passe dans les fichiers de configuration

<jvm-options>-Djavax.net.ssl.keyStore=/myappdir/keystore.jks</jvm-options> 
<jvm-options>-Djavax.net.ssl.keyStorePassword=changeit</jvm-options> 
<jvm-options>-Djavax.net.ssl.trustStore=/myappdir/cacerts.jks</jvm-options> 
<jvm-options>-Djavax.net.ssl.trustStorePassword=changeit</jvm-options> 
<jvm-options>-Djavax.net.ssl.keyAlias=myapp-cert</jvm-options> 
<jvm-options>-Djavax.net.ssl.keyStoreAlias=myapp-cert</jvm-options> 
<jvm-options>-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=myapp-cert</jvm-options> 

Le problème ici est qu'un mot de passe pour JKS doit être inséré dans le fichier domain.xml (voir -Djavax.net.ssl.trustStorePassword=changeit), qui je pense est pas une bonne affaire pour des raisons de sécurité.

Est-ce que quelqu'un connaît un meilleur moyen d'importer un certificat à glassfish v4 sans stocker le mot de passe dans les fichiers de configuration?

Répondre

2

En général, vous pouvez éviter de stocker des données sensibles dans le fichier domain.xml à l'aide d'un alias.

Par exemple, en supposant que j'ai un mot de passe DB de « secretDBpassword » pour une base de données de production utilisé pour « myApp » Je pouvais faire ce qui suit:

Créer un alias de mot de passe:

asadmin> create-password-alias myApp-production-db 
Please enter the alias password> // enter secretDBpassword 
Please enter the alias password again> // enter secretDBpassword 
Command create-password-alias executed successfully. 

Régler la valeur de la propriété de mot de passe à:

${ALIAS=myApp-production-db} 

Ceci n'a pas à être utilisé pour les mots de passe. Toute chaîne peut être stockée en tant qu'alias.

Dans votre cas, cependant, nous parlons du mot de passe utilisé pour le fichier de clés et le fichier de clés certifiées. C'est le maître mot de passe et peut être réglé avec une commande asadmin:

asadmin> change-master-password 

Documentation for change-master-password

Comme vous l'avez noté dans votre exemple, la valeur par défaut est changeit, ce qui est bien connue , donc c'est une bonne idée de le "changer"! L'utilisation du mot de passe maître de cette manière évite de spécifier un mot de passe dans les options JVM ou n'importe où dans le fichier domain.xml.