Personal tools
You are here: Home GNU / Linux Debian Sarge Création et gestion de certificats OpenSSL
Document Actions
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Création et gestion de certificats OpenSSL

by admin last modified 2008-08-07 19:10

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.gz
tar xfz cert_manager-tar.gz
Il ne vous reste plus qu'a entrer dans le répertoire ainsi créé:
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.

Attachments

Fichier absent

Posted by Guillain at 2007-12-15 09:02
Bonjour,
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

désolé

Posted by Pierre-Yves Landuré at 2007-12-15 10:27
Ce howto est ancien, et je doit le réécrire bientôt. Je ne peut malheuresement pas t'aider, mais si tu es disposé a attendre 1 ou 2 semaine (j'espère que je le ferais dans ce délai), tu trouvera un nouveau howto pour faire des certificats SSL. Je te conseille pour le moment de visiter http://www.cacert.org qui permet d'avoir des certificats signés par une autorité de certification et propose de très bon guides, bien qu'ils soient en anglais

maj

Posted by Pierre-Yves Landuré at 2007-12-15 10:28
J'ai corrigé le lien vers le fichier qui posait problème. Tu peut essayer ce howto, mais je ne sais pas s'il marche bien.

Bonjour

Posted by Guillain at 2007-12-15 10:51
Ya pas de soucis, je peux largement attendre 2 semaines... En fait j'ai réalisé un certificat "pem" que j'utilise pour mon domaine principal. Si je l'appliquait dans mes virtual hosts de mes sous-domaines, Firefox affiche toujours un message d'avertissement. C'est pour cela que je cherche a créer un certificat pem qui puisse aussi prendre en compte des sous-domaines afin que je puisse protéger l'accès au webmail, à phpmyadmin... et que Firefox ne m'affiche plus d'avertissement...
En tout cas merci pour ton aide

Directive ignorée ?

Posted by Mahoru`Tsunemi at 2008-04-28 18:09
Bizarrement, on dirai que firefox2 ignore la directive SubjectAltName: DNS: ou, lighttpd ne la transmet pas, car firefox me dis que le certificat est décrit uniquement pour la zone principale....
Une idée sur le problème ou de mon erreur (si est-elle présente)

Désolé, aucune idée

Posted by lwolf at 2008-04-28 18:12
Je ne suis vraiment pas un pro du SSL. et ce guide est assez vieux. Je ne suis plus au fait de toutes les astuces à ce niveau. cacert.org est une bonne référence dans ce domaine. Bonne chance.

Certificats SSL

Posted by Aurélien at 2010-01-13 22:21
Bonjour. Je voudrais savoir si on pouvais utiliser votre scripte pour généré des clé pour serveur openvpn et sinon comment généré une clé DH avec votre scripte ?

Cordialement

Aurélien


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards:

Wikio