Création et gestion de certificats OpenSSL
Les certificats OpenSSL sont requis pour la mise en place de connexions cryptées. Cet article explique comment mettre en place une gestion rationnelle de votre environnement SSL.
Attention !
Cet article est obsolète, et je vous recommande de ne pas le suivre. Il est avantageusement remplacé par :
Créer un certificat SSL multi-domaines
Ubuntu
Ubunteros, avant de continuer plus en avant dans ce Howto, veuillez exécuter la commande suivante afin que vous utilisiez le compte root de votre système :
sudo su -
Mise en place de l'environnement
En premier lieu, nous installons les outils de création des certificats SSL :
apt-get install openssl
Nous nous plaçons dans le répertoire personnel de notre utilisateur :
cd ~/
Nous téléchargeons ensuite les 2 fichiers permettant de gérer notre autorité de certification. Le premier est le fichier de configuration d'OpenSSL pour la création d'une autorité de certification :
wget http://howto.landure.fr/gnu-linux/debian-sarge/creation-et-gestion-de-certificats-openssl/cert_manager-tar.gzIl ne vous reste plus qu'a entrer dans le répertoire ainsi créé:
tar xfz cert_manager-tar.gz
cd CERT_MANAGER
Création d'un autorité de certification.
Nous allons maintenant créer l'autorité de certification de notre réseau local. En premier lieu, nous initialisons notre environnement de gestion des certificats :
./cert_manager.sh --init
Cette commande crée les dossiers et fichiers nécessaires au bon fonctionnement de notre script et vous pose les questions nécessaires à la configuration de votre autorité de certification :
You will now be asked to give informations for your certificate authority.
Description du domaine [défaut : Domaine local]:
Code de votre pays [défaut : FR]:
Nom de votre région [défaut : Ile de France]:
Nom de votre ville [défaut : Paris]:
Nom de votre domaine [défaut : domain.local]:
Email de l'administrateur [défaut : root@domain.local]:
Nous créons ensuite notre autorité de certification :
./cert_manager.sh --create-ca
Vous disposez à présent du nécessaire pour signer vos propres certificats.
Création d'un certificat serveur pour notre réseau local.
Maintenant que vous disposez d'une autorité de certification, nous allons créer une requête de certification afin d'obtenir au final un certificat signé par notre autorité. Par exemple, pour créer un certificat pour notre serveur HTTPS :
./cert_manager.sh --generate-csr=https
Remarque: https est utilisé pour générer le nom de fichier de la requête. Il est préférable que cette valeur ne contienne ni espace, ni caractères spéciaux.
Vous devez alors saisir les informations de votre certificat :
You will now be asked to give informations for your certificate authority.
Type de serveur [défault : HTTP server]: HTTPS server
Code de votre pays [défaut : FR]:
Nom de votre région [défaut : Ile de France]:
Nom de votre ville [défaut : Paris]:
Email de l'administrateur [défaut : root@domain.local]:
Nom de votre domaine [défaut : domain.local]: www.domain.local
Noms de domaines supplémentaires, un par ligne. Finissez par une ligne vide.
SubjectAltName: DNS:doc.domain.local
SubjectAltName: DNS:imp.domain.local
SubjectAltName: DNS:phpmyadmin.domain.local
SubjectAltName: DNS:
Remarque: Comme vous pouvez le voir, cet outil vous donne la possibilité de générer des certificats valides pour plusieurs noms de domaines.
A la fin de la procédure, l'outil vous affiche la requête créée car vous pouvez, si vous le souhaitez, faire signer un certificat serveur par le site CACert.
Si le certificat est destiné à votre réseau local, vous pouvez utiliser votre autorité de certification pour le signer :
./cert_manager.sh --sign-csr=https
Cette commande vous affiche les informations incluses dans la demande de certificat et vous demande si vous acceptez de le signer.
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Vous disposez à présent de 2 fichiers qui ensemble forment votre certificat :
./CERTIFICATES/ldap_cert.pem
./PRIVATE_KEYS/ldap_key.pem
Il vous suffit a présent de copier ces fichiers et la clef publique de votre autorité de certification à l'endroit approprié pour la configuration de votre serveur :
./CERTIFICATE_AUTHORITY/ca-cert.pem
Remerciements
Cette page est largement inspirée (sinon recopiée) de ce superbe howto : OpenSSL Certificate Authority Setup.
Je me suis également inspiré de Virtual Host Task Force pour mettre en place la gestion de certificats à nom de domaine multiple.
Enfin, si vous souhaitez un tutoriel plus explicatif sur les secrets de OpenSSL, vous pouvez visiter : Guide pratique des certificats SSL.
désolé
maj
Bonjour
En tout cas merci pour ton aide
Directive ignorée ?
Une idée sur le problème ou de mon erreur (si est-elle présente)
Désolé, aucune idée
Certificats SSL
Cordialement
Aurélien
Fichier absent
J'essaye desesperement de faire un certificat SSL qui puisse protege mon domaine principal ainsi que certain de mes sous-domaines. Je crois que ton article devrait me permettre de réaliser ceci... Par contre le fichier "cert_manager.tar.gz", n'est visiblement plus là... Erreur 404. Est-ce qu'il serait possible de le remettre en ligne?
Merci pour votre aide