Introduction

Dans le post précédent sur la signature numérique, nous avons vu qu’il fallait obtenir un certificat. Dans ce tutoriel, nous allons voir comment en fabriquer un avec OpenSSL. Pourquoi OpenSSL? car il est opensource… et surtout il contient toutes les fonctions nécessaire pour générer des clefs aléatoires et permettre la génération de certificats uniques.

En bas de la page vous avez l’ensemble en téléchargement.

Obtenir un certificat

Vous avez plusieurs possibilité pour obtenir un certificat.

  • S’auto certifier : C’est facile, gratuit, ça ne vaut pas grand chose et on le contourne très facilement.
  • Acheter un certificat : il y a des organismes habilités à le faire. En fonction du niveau de sécurité les prix et les contraintes changent.
  • Utiliser OpenSSL : permet de créer un organisme interne, de générer des certificats, un bon compromis pour les documents internes

Utilisation d’OpenSSL

OpenSSL c’est quoi?

Open SSL est une boite à outil permettant notamment du chiffrement, mais également de créer des certificats. La documentation complète d’OpenSSL est disponible sur www.openssl.org.

On le crée comment ce certificat?

Pour créer le certificat, il faut:

  • Une clef unique
  • Des renseignements sur la personne
  • Un mot de passe (clef privée de la personne)

Le mot de passe c’est comme le code personnel de la carte bleue. Seul l’utilisateur doit le connaitre.

Création d’un CA

Alors, le CA c’est l’organisme de certification décrit précédemment. Il est matérialisé par un certificat qui indique que c’est lui qui à le droit de certifier. Sur OpenSSL on commence par générer la clef unique:

openssl genrsa -des3 -out ca/ca.key -rand seed.rnd 4096

Cette commande va créer une clef unique qui s’appelle ca.key. Maintenant on va créer le certificat pour le CA avec la commande:

openssl req -new -x509 -days 3650 -config ROOT-CA.cnf -key ca/ca.key -out ca/ca.crt

Le certificat sera valable pendant 3650 jours et il est enregistré sous le fichier ca.crt. Pour renseigner les informations, on appelle la configuration ROOT-CA.cnf. Dans ce fichier on peut personnaliser les valeurs par défaut, pour quelle utilisation le certificat est valide etc etc (la liste complète est ici). Evidement, il faut conserver la fonction keyCertSign qui vous permet de valider les certificats des utilisateurs.

Création des certificats utilisateurs

Comme pour le CA, on va commencer par générer une clef unique avec la commande suivante:

genrsa -out key/toto.key -rand seed.rnd 2048

Ensuite on génère un certificat temporaire pour l’utilisateur. Cette fois on charge le fichier de configuration USER.cnf. C’est dans ce fichier de configuration que l’on va définir les droits du certificat. Dans le cas d’une signature numérique, on va conserver digitalSignature et timeStamping.

openssl req -new -config USER.cnf -key key/toto.key -out certs/toto.pem

On demande au CA de le certifier. Pour cela, il faut avoir le mot de passe qui a été renseigné dans le certificat du CA.

openssl ca -config CA-SIGN.cnf -in certs/toto.pem -out certs/toto.crt -updatedb

On voit apparaitre un updatedb dans la commande. Ce paramètre permet d’archiver les certificats dans le fichier index.txt. L’emplacement et le nom du fichier sont définis dans le fichier de configuration CA-SIGN.cnf. A l’issue de cette commande on a un certificat. Mais pour pouvoir l’utiliser dans AcrobatReader par exemple, il faut un fichier .p12! Rien de compliqué, en exécutant la commande suivante, on a le bon format:

openssl pkcs12 -export -out ./out/toto.p12 -inkey key/toto.key -in certs/toto.crt -chain -CAfile ca/ca.crt

Batch automatique

On peut passer par des batchs pour éviter les de re-taper les lignes de commandes. Vous trouverez dans le package deux batchs. le batch ROOT-CA.bat permet de générer le CA et le USER_MAKE.bat permet de générer les certificats des utilisateurs.

OpenSSL Batch Download

Liens externes

Pour plus d’information, je vous recommande :

https://www.openssl.org/

https://jamielinux.com/docs/openssl-certificate-authority/index.html

Signature numérique part 2 : Tuto OpenSSL et certificat
Étiqueté avec :                

Une pensée sur “Signature numérique part 2 : Tuto OpenSSL et certificat

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *