Installation Ejbca
Installation Ejbca
Installation Ejbca
Documentation d'installation
EJBCA
version Debian LENNY
License
Notations
Le code informatique
Les sorties terminales sont représentées ainsi :
$ commande1
# commande2
Les commandes à exécuter avec des droits utilisateurs sont précédées du caractère « $ »
tandis que celles à exécuter les droits root sont précédées du caractère « # ». Ces caractères
ne sont pas à saisir dans la ligne de commande.
Le contenu ou un extrait de fichier est représenté ainsi :
# Ceci est un fichier
parameter="value"
Les noms de variables, les extraits de code et les adresses web seront composés en police à
chasse fixe. Exemples
Ceci est un point sur lequel votre attention doit être attirée.
Ceci est un point critique à prendre en compte et pour lequel votre attention est requise.
1 Introduction
L'objet du présent document est la description de l'installation de EJBCA 3.9.2 dans un
environnement Debian LENNY.
Cette méthode est proposée pour éviter d'installer des applications de compilation sur un
environnement de production. Toutefois pour des besoins de tests, l'installation en mode
préproduction peut suffire.
À la différence de l’installation de production qui est déployée avec les composants déjà
compilés, l’installation en pré-production nécessite au préalable la configuration des différents
fichiers de déploiement de EJBCA.
Pour générer une PKI dite « prête à l’emploi », la plate-forme de pré-production doit être
identique en terme de matériel et de composants logiciels. Dans le cas contraire, des
différences de performances entre un environnement et un autre peuvent survenir.
Remarque : Mysql n'est pas la seule base de données possible pour utiliser EJBCA
# apt-get update
Il convient à présent de créer une base de données pour EJBCA à l'aide de la commande
suivante :
La commande suivante permet d'ajouter les droits de l'utilisateur ejbca pour la base ejbca.
puis
mysql>exit
Le paramétrage définitif des variables d’environnement se fera en une seule fois après
l’installation de JBoss. Il faut maintenant procéder à l’installation de l’extension JCE (qui
permet d’utiliser des tailles de clés plus grandes).
Décompresser le fichier depuis le répertoire où vous avez déposé le fichier jce_policy-6.zip :
# cp jce_policy-6.zip /opt
# cd /opt
# unzip jce_policy-6.zip
# cd jce
# cp *.jar $JAVA_HOME/jre/lib/security/
# cd /opt
# rm -rf jce jce_policy-6.zip
3.5 Jboss
Le téléchargement du composant suivant est nécessaire :
● jboss-5.1.0.GA
jboss-5.1.0.GA-jdk6.zip
# mkdir /var/log/jboss/
# chown jboss:jboss /var/log/jboss/
# export JBOSS_HOME=/opt/jboss
4 Post-installation
Les variables d’environnement suivantes doivent être renseignées dans le fichier /etc/profile
Une fois ce fichier sauvegardé avec les droits d'exécution, il est nécessaire de se déconnecter
puis reconnecter pour prendre en compte ces paramétres
# cd /etc/init.d/
# touch jboss
#!/bin/sh
start(){
echo "starting jboss.."
su -l jboss -c '/opt/jboss/bin/run.sh >> /var/log/jboss/log 2>>/var/log/jboss/errors &'
}
stop(){
echo "stopping jboss.."
# su -l jboss -c '/opt/jboss/bin/shutdown.sh -S &'
su -l jboss -c '/opt/jboss/bin/shutdown.sh -S'
}
restart(){
stop
# on définit un temps d'attente afin de laisser le service JBOSS s'arreter avant de le
relancer
sleep 60
su -l jboss -c 'killall java'
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: jboss {start|stop|restart}"
exit 1
esac
exit 0
Pour terminer il est nécessaire d'exécuter les commandes suivantes pour lancer jboss en
automatique :
4.3 EJBCA
La PKI EJBCA est disponible en téléchargement depuis le site www.ejbca.org. Une fois EJBCA
téléchargé, il faut décompresser le ficher dans un répertoire de travail tels que opt par
exemple.
# cp ejbca_3_9_2.zip /opt
# cd /opt
# unzip ejbca_3_9_2 .zip
# rm -rf ejbca_3_9_2 .zip
# ln -s ejbca_3_9_2/ ejbca
# chown -R jboss:jboss /opt/ejbca/
Presque toutes les manipulations suivantes ne nécessitant pas les droits root, l’utilisateur jboss
sera préféré.
# su – jboss
# cp $EJBCA_HOME/lib/bc*.jar $JBOSS_HOME/server/default/lib/
La configuration de EJBCA est réalisée par le biais des fichiers de configuration qui sont
localisés dans le répertoire d'installation de EJBCA référencé par la variable d'environnement
$EJBCA_HOME. Chaque fichier de configuration à modifier doit être, au préalable, dupliqué à
partir d'un fichier d'exemple fourni :
$ cd $EJBCA_HOME/conf
$ cp <CONFIGURATION>.properties.sample <CONFIGURATION>.properties
Attention !
Même si vous ne souhaitez pas personnaliser la configuration, il reste nécessaire d'effectuer la
manipulation précédemment décrite avec le fichier ejbca.properties.sample et le fichier
database.properties.sample afin de pouvoir continuer. En effet, ces fichiers sont
indispensables à l'installation de EJBCA avec une base de données.
$ cd /opt/ejbca/conf
$ vi database.properties
1. La base de données
#database.name=mysql
Décommentez la ligne de la manière suivante :
database.name=mysql
3. Le pilote JDBC
#database.driver=com.mysql.jdbc.Driver
Décommentez la ligne :
database.driver=com.mysql.jdbc.Driver
#database.username=ejbca
#database.password=ejbca
database.username=ejbca
database.password=ejbca
pas utilisé dans le cadre de ce projet. Pour plus d'informations sur le contenu de ce fichier de
configuration, consultez le guide de l'administrateur
Ce fichier permet de configurer les paramètres des interfaces web sur EJBCA.
Propriété description
java.trustpassword Spécifie le mot de passe protégeant le keystore
du JDK,par défaut « changeit »
httpsserver.dn DN du certificat
Propriété Description
mail.jndi-name Nom de l’interface dans l’arbre JNDI, ne pas
modifier cette variable
mail.user Nom d’utilisateur pour l’authentification SMTP
mail.password Mot de passe pour l’authentification SMTP
mail.smtp.host Nom d’hôte où envoyer les messages
mail.smtp.auth Booléen. Si vrai, utilise l’authentification SMTP
mail.from Adresse de l’émetteur à utiliser pour l’émission de
courriel
mail.debug Active le debug pour le composant JavaMail
mail.suject Sujet par défaut utilisé pour la notification d’un
certificat en attente
mail.message Corps du message par défaut pour la notification. Il
est possible d'utiliser
des variables :
● ${USERNAME} : nom de l'entitité
● ${PASSWORD} : mot de passe de l'entité
● ${CN} : le CN de l'entité
● ${O} : organisation de l'entité
● ${OU}
● ${C} : pays de l'entité
● ${DATE} : la date du jour
● ${NL} : saut de ligne
Propriété Description
appserver.type Type de serveur d'applications utilisé pour le
déploiement de EJBCA
: JBOSS, Glassfish, WebSphere, etc.
appserver.home Répertoire du serveur d'applications. Si les
variables
d'environnement APPRV_HOME ou JBOSS_HOME
sont paramétrées, il
n'est pas nécessaire de modifier ce paramètre.
build.compiler Compilateur JAVA utilisé. Par défaut, javac.
java.ver Version de JAVA utilisée. EJBCA ne supporte
actuellement que la
version 1.5 du JDK.
ca.name Nom de l'AC Racine créé à l'installation de EJBCA
ca.dn DN de l'AC racine
ca.tokentype Type de token généré. Par défaut, la génération se
fait grâce à
EJBCA (soft), sans support physique.
ca.tokenpassword Positionner à « null » par défaut.
ca.tokenproperties Fichier de configuration dans le cas d'un support
matériel pour la
cryptographie;
ca.keyspec Taille de clef par défaut.
ca.keytype Type d'algorithme utilisé par défaut pour la clef.
ca.signaturealgorithm Type d'algorithme utilisé par défaut pour la
signature du certificat.
ca.validity Durée de validité des AC par défaut.
ca.policy Numéro de la politique de sécurité utilisé pour les
AC. « null »
représente aucune politique.
ca.keystorepas Mot de passe protégeant la clef privée des AC dans
la base de
données.
ca.ocspkeystorepass Mot de passe protégeant le keystore OCSP dans la
base de
données.
ca.xkmskeystorepass Mot de passe protégeant le keystore XMKS dans la
base de
données.
ca.cmskeystorepass Mot de passe protégeant le keystore CMP dans la
base de données.
approval.defaultrequestvalidity Temps avant qu'une requête de certificat soit
périmée (en
secondes)
approval.defaultapprovalvalidity Temps qu'une requête approuvée doit rester valide
(en secondes)
approval.excludedClasses
createcrl.service.enabled
logging.log4j.config Service de logs log4j
● false : configuration par défaut de log4j
● basic : tout est affiché à la console
● $EJBCA_HOME/conf/log4j.properties : utilise
le fichier de
configuration
jboss.config Type de configuration de JBOSS (c.-à-d. le répertoire
d'installation
dans JBOSS)
jboss.farm.name Nom du répertoire de déploiement dans JBOSS
hwtoken_classes Répertoire des classes pour contrôler les token
physiques
hsm.luna
healthcheck.amountfreemem
healthcheck.dbquery
healthcheck.authorizedips
ecdsa.implicitlyca.X
certtools.dnorderreverse
development.provider.installation
# su - jboss
$ /etc/init.d/jboss stop
$ cd $EJBCA_HOME
$ ant clean
$ ant bootstrap
Si l’ensemble des opérations de compilation s’est bien passé, la deuxième étape consiste à
générer les certificats nécessaires à EJBCA. Cette opération est réalisée avec la commande
suivante :
Pré-requis : JBOSS et la base de données doivent être démarrés.
$ /etc/init.d/jboss start
attendez que jboss soit démarré ( de 30 secondes à plusieurs minutes suivant votre
machine) en consultant les fichiers de log de jboss /var/log/jboss/log .
$ cd $EJBCA_HOME
$ ant install
#exit
#cd $EJBCA_HOME
# ant javatruststore
# chown -R jboss:jboss /opt/jboss/
Il vous sera demandé le distinguished name (DN) du certificat serveur lors de cette étape. Si
et seulement si vous n'avez pas configuré les certificats par défaut dans le fichier de
configuration ejbca.properties
À la fin de cette opération, l’ensemble des certificats aura été généré, tels que le fichier
PKCS#12 pour l’administrateur, celui-ci figure dans le répertoire $EJBCA_HOME/p12.
La dernière étape consiste à déployer l’ensemble des binaires et certificats, ainsi que de
configurer le container des servlets, cette opération est réalisée avec la commande suivante :
Pré-requis : JBOSS doit être arrêté.
# /etc/init.d/jboss stop
# su - jboss
$ cd $EJBCA_HOME
$ ant deploy
5.4 Vérification
5.4.1 JBOSS
La commande suivante permet de vérifier les logs de JBOSS pour vérifier la présence ou non
d'erreur :
$ /etc/init.d/jboss start
$ tail –f /var/log/jboss/log
Sélectionner le bouton « Avancé », puis l’onglet « Chiffrement » ; et enfin cliquer sur le bouton
« Afficher les certificats ».
Saisir le mode de passe de votre navigateur, ce mot de passe permet de protéger le magasin
de certificats.
Saisir le mot de passe du fichier PKCS #12 (.p12), ce mot de passe a été saisi lors de l’étape
de création des certificats de tests.
Une fois le certificat intégré dans votre navigateur, veuillez vous connecter sur l’interface
d’administration à l’URL suivante :