Openssl – générer et signer une demande de signature(CSR)



Dans l’article précédent, nous avons vu comment créer un autorité de certification(CA). Le but de cette autorité de certification est de pouvoir signer des certificats. Dans cet article nous allons voir comment générer une demande de signature(CSR: Common Signing Request) et comment la signer avec notre autorité de certification.

Générer une demande de signature(CSR)

On commence par générer la clef privée pour notre certificat, c’est elle qui va nous permettre de déchiffrer la clef de session que le client aura chiffrée avec notre clef publique(voir étape 3 de l’article Openssl – création d’une autorité de certification).
Dans ce cas-ci, la clef privée ne sera pas protégée par un mot de passe. Nous allons tester notre certificat avec le serveur web Apache, si nous mettons un mot de passe sur cette clef, il faudra le taper à chaque fois que le serveur Apache sera démarré.




Générer le clef privée:
#openssl genrsa 1024 > www.test.net.key

Cette clef ne doit être lisible que par l’utilisateur root:
chmod 600 www.test.net.key
On génère la demande de signature(CSR):

#openssl req -new -key www.test.net.key -out www.test.net.csr

Signature du CSR avec notre CA

openssl ca -in www.test.net.csr -out www.test.net.crt
On peut copier le certificat www.test.net.crt dans /etc/ssl/certs et la clef privée www.test.net.key dans /etc/ssl/private sur le serveur web.

Tester le nouveau certificat avec Apache

Installer Apache:
apt-get install apache2
Activer le module ssl:
a2enmod ssl
Activer le virtual host default-ssl:
a2ensite default-ssl

Il faut maintenant indiquer le chemin vers la clef et le certifcat que nous avons créés auparavant.
Dans /etc/apache2/sites-available/default-ssl, on remplace:
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Par:
SSLCertificateFile /etc/ssl/certs/www.test.net.crt
SSLCertificateKeyFile /etc/ssl/private/www.test.net.key

On redémarre apache:
/etc/init.d/apache2 restart

Si on se connecte en https sur notre serveur web on reçoit un avertissement. Si l’on veut éviter ce problème, il suffit d’importer le CA que nous avons créé dans l’article précédent sur notre navigateur.
Sur Firefox on peut l’installer via:
Edit -> Préférences -> Advanced -> View Certificates -> Import

Commandes openssl utiles

Afficher tout ce qui se trouve dans le certificat:
openssl x509 -in www.test.net.crt -text
Afficher le sujet du certificat:
openssl x509 -in www.test.net.crt -noout -subject
Afficher l’issuer du certificat:
openssl x509 -in www.test.net.crt -noout -issuer

Posts les plus consultés de ce blog

Guide pas à pas de la gestion de l’impression dans Windows Server 2008