Générer des certificats ssl
Par Minitux le mercredi, avril 15 2009, 23:49 - Sécurité - Lien permanent
Vous voulez créer un espace sécurisé pour votre site web (https). Le problème est que ceci coute chèr et vous serez obligé de le renouveller tous les ans ou tous les deux ans. Si votre espace n'est pas destiné au grand public (e-commerce) vous pouvez générez vous même votre certificat
Voici la marche à suivre :
La génération de certificats ssl se fait auprès d'une autoritée de certification. C'est elle qui valide les informations pour générer un certificat qui correspond à votre domaine. Nous pouvons devenir autorité de certification (CA) à l'aide d'Openssl.
Etape 1: Installation d'openssl
root~# aptitude install openssl // yum install openssl
Etape 2 : Configuration du CA avec openssl
Commencons par créer quelques répertoires pour nos certificats
root~# mkdir -p /etc/ssl/root-ca/{conf,private,public} root~# chmod 400 /etc/ssl/root-ca/private root~# cd /etc/ssl/root-ca
Modifions certaines options du fichier d'openssl
root~# vi /etc/ssl/openssl.cnf[ req ]
default_bits = 2048
default_keyfile = /etc/ssl/root-ca/private/root.pem
[ root_ca_distinguished_name ]
countryName = FR
stateOrProvinceName = France
localityName = Paris
0.organizationName = Minitux Inc
commonName = Minitux Inc Root CA
emailAddress = blog@minitux.fr
Etape 3 : Générer les certificats CA
root~# openssl req -nodes -config /etc/ssl/openssl.cnf -days 1825 \ -x509 -newkey rsa:1024 -out public/root.pem -outform PEM
Nous avons maintenant deux nouveaux fichiers :
- private/root.pem (clé privé) - public/root.pem (clé public)
On peut lire le contenu de notre clé public à l'aide de cette commande
root~# openssl x509 -in public/root.pem -noout -text
Etape 4 : Générer une clé privé et un CSR (certificat signing request)
Nous allons maintenant générer une clé privé pour notre serveur
root~# openssl genrsa -des3 -out server.key 4096
Ensuite nous générons le fameux CSR qui contiendra nos informations
root~# openssl req -new -key server.key -out server.csr
Nous pouvons lire le contenu des fichiers générés à l'aide de ces commandes
root~# openssl rsa -noout -text -in server.key root~# openssl req -noout -text -in server.csr
Etape 5 : Générer notre certificat chez notre CA
Nous allons générer un certificat valable 1 an
root~# openssl x509 -req -days 365 -in server.csr -CA public/public.pem -CAkey private/root.pem -set_serial 01 -out server.crt
Toujours pour les curieux la commande pour lire le contenu de ce certificat :
root~# openssl x509 -noout -text -in server.crt
Etape 6 : Supprimer les mots de passes
Si vous souhaitez mettre ce certificat sur votre serveur apache, il est intéressant de supprimé les mots de passe pour que le serveur puisse redemarrer sans aucun prompt
root~# openssl rsa -in server.key -out server.key.insecure
Vous pouvez ajouter votre clé public dans votre navigateur par exemple pour que les certificats générés par votre autorité de certification soit directement reconnu.
Quelques liens
Le site d'openssl Les autorités de certifications