Authorité de Certification - Memento

Réflexions sur les clés

Voir la commande openssl pour connaitre les algorithmes dispos.

Vocabulaire : Les clés vont servir à chiffrer la communication.
Chaque utilisateur possède deux clés : une publique et une privée.
Un certificat permet de transmettre la clé publique et/ou privée en les accompagnant d’infos pour les valider.

Créer sa propre authorité de certification :

Architecture des AC

AC Root
+- AC Web 
+- AC Users

Architecture de répertoires dans /root/pki

/root/pki/
+- acroot/         : les mêmes fichiers et sous-répertoires doivent être créés pour toutes les autorités
 +- index.txt      : fichier d'index de la base de données
 +- index.txt.attr
 +- serial         : initialisé à 1 [echo "01" > serial]
 +- crlnumber      : initialisé à 1 [echo "01" > serial]
 +- certs/	   : certificats fabriqués par l'autorité
 +- csr/           : demande de certifications
 +- crl/	   : liste de révocation fabriquée par l'autorité
 +- private/	   : clés privées générées par l'autorité
 +- config/	   : fichiers de configuration
+- /acweb
+- /acusers

Génération pour l’autorité racine

Fichier de conf

Voir acroot.cnf

Génération clé privée et certificat

Le certificat étant auto-signé, il est généré directement en une seule commande (option -x509). La clé privée et le certificat (contenant la clé publique) sont générés en même temps.

$ su - root
$ cd /root/pki/acroot
$ openssl req -new -x509 -config config/acroot.cnf -newkey rsa:4096 -keyout private/acroot.key -out acroot.pem -days 3650

La passphrase protège la clé privée : il faut absolument la renseigner !
[TODO: Voir si les options newkey et days sont obligatoires puisque déjà présentes dans le fichier de conf]
[TODO: Voir les répertoires utilisés dans la commande pour les fichiers de sortie]

La clé privée se trouve dans private/acroot.key et va permettre de signer les autorités filles.

Génération de l’autorité web

Fichier de conf

Voir acweb.cnf

Génération clé privée et CSR

Comme l’autorité n’est pas auto-signée, il faut d’abord créer un fichier CSR (Certificat Signing Request), que nous signerons ensuite avec la clé privée de l’autorité racine. La clé privée et le fichier CSR (acweb.req) (contenant la clé publique) sont générés en même temps.

$ su - root
$ cd /root/pki/acweb
$ openssl req -new -config config/acweb.cnf -newkey rsa:4096 -keyout private/acweb.key -out acweb.req

La passphrase protège la clé privée : il faut absolument la renseigner !

Signature de l’autorité web

La signature de l’autorité web se passe comme suit :

$ cd /root/pki/acroot
$ openssl ca -config config/acroot.cnf -extensions ac__web -out ../acweb/acweb.pem -infiles ../acweb/acweb.req

[TODO: Changer le nom de l’extension sslca par acweb dans le fichier de conf de l’ac root]
[TODO: Reprendre à la génération des listes de révocation]