openssl : Générer des clés

De nos jours, il est conseillé de générer des clés d'une longueur de 2048 bits pour une meilleure sécurité.

Pour un serveur Apache (configuration SSL), il est conseillé de générer des clés sans phrase de passe. Dans le cas contraire, à chaque démarrage du service Apache, la phrase de passe sera demandée.

Avec OpenSSL, la clé privée contient également les informations de la clé publique. Il n'est donc pas nécessaire de générer la clé publique séparément.

Génération d'une clé RSA

Générer une clé simple :

$ openssl genrsa

Générer une clé de 2048 bits et la sauvegarder dans un fichier :

$ openssl genrsa -out mykey.pem 2048

Idem mais avec un cryptage DES3 et une phrase de passe :

$ openssl genrsa -des3 -out mykey.pem 2048

Génération d'une clé publique RSA

$ openssl rsa -in mykey.pem -pubout

Génération d'une clé DSA

Les clés DSA sont utilisées pour la signature d'objets divers.

Le processus de génération se déroule en deux étapes.

Premièrement, générer les paramètres permettant la génération de la clé :

$ openssl dsaparam -out dsaparam.pem 2048

Puis, générer la clé en fonction des paramètres générés ci-dessus :

$ openssl gendsa -des3 -out privkey.pem dsaparam.pem

Une phrase de passe est demandée lors de la génération de la clé DSA.

Pour ne pas avoir de phrase de passe, il suffit de supprimer le paramètre "-des3".

Supprimer la phrase de passe d'une clé privée RSA

Cette commande permet de générer une nouvelle clé privée (newkey.pem) à partir de celle protégée par une phrase de passe (mykey.pem).

$ openssl rsa -in mykey.pem -out newkey.pem

Supprimer la phrase de passe d'un certificat

Pour l'exemple, nous allons créer un certificat crypté (mycert.pem).
Ce fichier (mycert.pem) contiendra la clé privée et le certificat public et sera protégé par une phrase de passe.

$ openssl req -x509 -days 365 -subj '/C=FR/ST=Loire Atlantique/L=Ancenis/CN=www.monsite.fr/emailAddress=toto@gmail.com' -newkey rsa:2048-keyout mycert.pem -out mycert.pem

Le décryptage du certificat se déroule en deux étapes :

Génération de la clé privée à partir du certificat crypté (mycert.pem) vers le nouveau certificat (newcert.pem) :

$ openssl rsa -in mycert.pem -out newcert.pem

Ajout du certificat public dans le nouveau certificat (newcert.pem) :

$ openssl x509 -in mycert.pem >>newcert.pem

 

Etiquettes: