Création d’une autorité de certification

Dès qu’il est question de sécurité en informatique, il est commun d’utiliser des certificats de sécurité SSL. Mac OS X Server n’échappe pas à cette règle et propose plusieurs services pouvant être sécurisé de la sorte (web, ical, addressbook, mail…).

Pour qu’un certificat SSL soit validé par le système client, il faut qu’il ait été signé par un tiers de confiance. Ce tiers de confiance est généralement une société qui paye pour avoir son propre certificat dans votre machine (Mac OS X s’installe avec et connait ainsi l’empreinte du tiers de confiance).

Si l’utilisation d’un certificat signé par un tiers reconnu est réellement obligatoire pour la publication de services externe, dédiée au grand public, elle ne l’est pas forcément pour une utilisation interne à l’entreprise uniquement (entendre ici, sur des machines appartenant à l’entreprise, mais qui sont éventuellement mobile).

L’idée est simple, nous allons créer une autorité de certification interne à l’entreprise et faire en sorte que tous les Mac de l’entreprise soient installés avec le certificat racine qui servira à valider tous les certificats émis.

La différence avec un certificat autosigné unique est dans le fait qu’avec ce seul certificat racine vous allez pouvoir valider une infinité de certificats émis et donc créer un certificat par service voir un certificat par client et éventuellement pouvoir le révoquer.

L’objectif n’est donc pas simplement d’authentifier la communication avec un serveur, mais également d’identifier le client.

S’il est besoin de le dire, cet article ne s’adresse absolument pas aux débutants, mais aux administrateurs système déjà au fait de ce que représente cette infrastructure.

La solution choisie pour cet article est EJBCA, une application web Java qui répond à toutes les attentes d’une autorité de certification (création, révocations, etc.). Cet article portera uniquement sur l’installation du produit et non son utilisation.

La première chose à faire est de se procurer tous les éléments nécessaires à cette installation, à savoir :

  • JBoss 4.2.3.GA, le serveur d’application qui fera tourner la solution
  • MySQL Connector/J, le driver de la base de données MySQL pour JBoss
  • EJBCA, la solution de gestion de notre autorité certifiante

La suite des commandes entend que vous ayez téléchargé ces fichiers depuis le serveur directement et que vous ayez fait un sudo -s pour travailler en tant que root dans votre environnement utilisateur.

Maintenant que tout est la, nous allons pouvoir installer JBoss :

export JBOSS_HOME=/usr/share/jboss-4.2.3.GA
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home/
export ANT_OPTS=-Xmx640m

Puis lui fournir le driver MySQL

ant bootstrap

En parlant de MySQL, vous allez en profiter pour configurer votre service MySQL de Mac OS X Server puis créer un nouvel utilisateur ejbca avec sa base associée (en pensant à noter le mot de passe quelque part) puis importé le fichier doc/howto/create-tables-ejbca3-mysql.sqlcontenu dans l’archive de EJBCA. Attention ce fichier contiens les instructions DROP TABLE, pensez à les retirer avant de l’exécuter.

Vous êtes maintenant prêt pour lancer JBoss avec cette commande (qui spécifie à JBoss d’écouter sur toutes les interfaces du serveur)

INFO  [EARDeployer] Started J2EE application: file:/usr/share/jboss-4.2.3.GA/server/default/deploy/ejbca.ear

JBoss va continuer de monopoliser ce premier shell durant toute l’installation, merci d’ouvrir un second écran et d’y faire aussi un sudo -s.

L’étape suivante consiste à installer EJBCA.

ant install

Nous voici donc rendu à l’étape de configuration d’EJCBA, pour cela vous avez quelques fichiers intéressants dans /usr/local/ejbca_3_10_5/conf, voici ceux que j’ai modifié :

  • database.properties
  • ejbca.properties
  • web.properties

Je vous laisse lire les commentaires de ces fichiers de configurations, ils sont assez simples et les valeurs par défaut sont bonnes, voici cependant quelques valeurs clefs :

web.properties :

ant deploy

Le mot de passe de java.trustpassword vous sera demandé plus tard, il permet de sécuriser l’accès au fichier contenant le certificat racine.

superadmin.password sera utilisé en passphrase pour le fichier p12 qui sera créé pour l’authentification cliente du super administrateur de EJBCA.

httpsserver.password quant à lui se verra utilisé pour démarrer l’autorité de certification à la fin.

ejbca.properties :

INFO  [EARDeployer] Started J2EE application: file:/usr/share/jboss-4.2.3.GA/server/default/deploy/ejbca.ear

N’hésitez pas à prendre le temps de lire les fichiers de configuration avant de continuer, certaines valeurs vous intéresserons.

3 réflexions au sujet de « Création d’une autorité de certification »

  1. Ping : Twitted by tiboll

  2. Ping : Tweets that mention Yoann Gini » Création d’une autorité de certification -- Topsy.com

  3. Ping : Twitted by Giiome

Laisser un commentaire