Commandes:Génération de certificats SSL serveur
Sommaire
But
Créer un certificat x509 pour une application serveur.
Étape préliminaire
Avant de pouvoir générer des certificats et dans le cas ou vous ne désirez pas faire signer vos certificats pas une autorité de certification reconnue (comme Verisign), il est impératif de disposer d'au moins un certificat pour notre autorité de certification (CA). Si cela, n'a pas déjà été fait, reportez-vous à la génération du certificat de l'autorité de certification.
Création d'une demande de certificat
- Se placer dans le répertoire /etc/pki/CA sous CentOS/RedHat/Fedora et /etc/ssl sous ubuntu:
- La première étape consiste à générer un couple clé privée/clé publique pour le certificat:
openssl genrsa -out private/openldap-pw.key -des3 1024
Generating RSA private key, 1024 bit long modulus ..........++++++ ..........................................++++++ e is 65537 (0x10001)
- Pour éviter que l'application serveur soit obligé de demander la passphrase au démarrage, enlever la du certificat:
openssl rsa -in private/openldap-pw.key -out private/openldap.key rm private/openldap-pw.key
- Restreindre l'accès à la biclé:
chown root.ldap private/openldap.key chmod 640 private/openldap.key
- La seconde étape consiste à créer la demande de certificat en y intégrant notre couple clé privée/clé publique:
openssl req -new -key private/openldap.key -out openldap.req
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [FR]: State or Province Name (full name) [Herault]: Locality Name (eg, city) [Saint-Jean-de-Védas]: Organization Name (eg, company) [Minetti]: Organizational Unit Name (eg, section) []:Serveur LDAP Common Name (eg, your name or your server's hostname) []:ldap.srv.minetti.org Email Address []:root@minetti.org Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
On obtient le fichier openldap.req qu'on envoi à l'autorité de certification pour être signé.
Reportez-vous au chapitre Gestion des certificats par l'autorité de certification pour procéder à la signature du certificat.
Pour ajouter un ou plusieurs subjectAltName, on tape la commande suivante:
openssl req -new -addext "subjectAltName=DNS:www.srv-minetti.org,DNS:ftp.srv-minetti.org" -key private/openldap.key -out openldap.req
Réception du certificat signé
Placer le nouveau certificat x509 signé dans /etc/pki/tls et restreindre son accès:
chown root.ldap certs/openldap.pem chmod 640 certs/openldap.pem
Renouvellement d'une demande de certificat
Le renouvellement s'obtient en créant une nouvelle demande de certificat à partir de l'actuel certificat:
openssl x509 -x509toreq -in certs/openldap.pem -signkey private/openldap.key -out openldap.req
On obtient le fichier openldap.req qu'on envoi à l'autorité de certification pour être signé.
Reportez-vous au chapitre Gestion des certificats par l'autorité de certification pour procéder à la signature du certificat.
Quelques commandes utiles
Pour visualiser le contenu d'un certificat:
openssl x509 -purpose -in certs/certificat.pem -text -noout
Pour supprimer le mot de passe d'un fichier clé:
openssl rsa -in certificat.key -out certificat-sans-mot-de-passe.key