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 ).

Proudly powered by Pelican, which takes great advantage of Python.