Créer une autorité de certification avec OpenSSL
Introduction
Ce tutoriel s’intéresse à la création d’une autorité de certification (CA) à l’aide d’OpenSSL. Il est largement inspiré (pour ne pas dire intégralement repris) de la documentation disponible à cette URL : How to create Certificate Authority using OpenSSL
Première étape : installer le paquet openssl
aptitude install openssl
Autorité de certification
En cryptographie, l’Autorité de certification (AC ou CA) a pour mission, après vérification de l’identité du demandeur du certificat par une autorité d’enregistrement, de signer, émettre et maintenir
* les certificats (CSR : Certificate Signing Request)
* les listes de révocation (CRL : Certificate Revocation List)
( _src: [WIKIPEDIA](http://fr.wikipedia.org/wiki/Autorit%C3%A9_de_certification)_ )
Création de l’autorité de certification
OpenSSL (version 0.9.8) est installé dans le répertoire /usr/lib/ssl. Le script CA.sh n’est pas dans le path, nous allons donc l’ajouter pour la session courante.
export PATH=$PATH:/usr/lib/ssl/misc
Nous allons maintenant adapter quelque peu le fichier de configuration ( /usr/lib/ssl/openssl.cnf ) utilisé pour la création de certificats,… mais tout d’abord nous allons en faire une sauvegarde. Réalisons les modifications suivantes :
...
[ req ]
default_bits = 2048
...
[ req_distinguished_name ]
countryName_default = FR
stateOrProvinceName_default = Ile-de-France
0.organizationName_default = XYZ
...
Maintenant, créons un répertoire qui contiendra tous les certificats (ce répertoire peut-être créé n’importe où, et nous le créerons dans le répertoire home) :
mkdir ~/ca && cd ~/ca
Nous allons enfin créer l’autorité de certification (il convient de taper sur la touche « entrée » à la première question « CA certificate filename »):
server:~/ca# CA.sh -newca
CA certificate filename (or enter to create)
Making CA certificate ...
Generating a 2048 bit RSA private key
............+++
........+++
writing new private key to './demoCA/private/./cakey.pem'
Enter PEM pass phrase: **************
Verifying - Enter PEM pass phrase: **************
...
Country Name (2 letter code) [FR]:
State or Province Name (full name) [Ile-de-France]:
Locality Name (eg, city) []:Lviv
Organization Name (eg,
company) [XYZ Co]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:XYZ Root CA
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/./cakey.pem: *****
Check that the request matches the signature
Signature ok
Certificate Details:
...
Write out database with 1 new entries
Data Base Updated
Sécurisons l’autorité de certification :
chmod -R go-rwx ~/ca
Notre autorité de certification est le fichier cacert.pem (qui est dans le répertoire ~/ca/demoCA directory ).