K

- Base de connaissances

Accueil > Projets Open Source > Certificat SSL... letsencrypt

Certificat SSL... letsencrypt

mercredi 14 décembre 2016, par webmestre

Introduction

Let’s Encrypt est un projet Open Source soutenu par Mozilla, l’Electronic Frontier Foundation et plein d’autres. Il propose une certification 100 % gratuite.

Installation de Let’s Encrypt sous DEBIAN 8

Sous DEBIAN 8, letsencrypt n’est pas encore dans les dépôts, il est donc proposé une installation via le dépôt git de cet open source :

cd /etc
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --help

Mise à jour de Let’s Encrypt

Il suffit de faire :

cd /etc/letsencrypt
git pull

Générer ces certificats

Une fois fait, il suffit de générer le(s) certificats des sites avec la commande suivante dite en mode manuel :

./letsencrypt-auto certonly -d mon_site.net --manual

Remplacez mon_site dans la commande par votre nom de domaine. Si, vous avez plusieurs sous-domaines associés, il suffit alors via l’option -d, de les ajouter comme suit :

./letsencrypt-auto certonly -d mon_site.net -d www.mon_site.net -d test.mon_site.net --manual

A la première exécution, le script mettra à jour toutes les dépendances nécessaires pour fonctionner correctement.
Puis, il demandera une adresse de courriel qui est utilisée pour vous prévenir à l’approche de l’expiration d’un certificat !
Enfin, il demandera s’il peux mémoriser l’adresse IP de la machine qui demande le certificat. Répondez oui !

Après avoir répondu à toutes ces questions, le script donne des lignes de code à exécuter sur le serveur WEB qui héberge le domaine à sécuriser :

mkdir -p /tmp/letsencrypt/public_html/.well-known/acme-challenge
cd /tmp/letsencrypt/public_html
printf "%s" -K16kGZuiO7K2KaBWq5r4-3DqAGiIRSAUiPBn5sRjLg.69d8y8usPgYQXAAB4JcEQE86bMjQirdY5S0hRVXBJLg > .well-known/acme-challenge/-K16kGZuiO7K2KaBWq5r4-3DqAGiIRSAUiPBn5sRjLg
# run only once per server:
$(command -v python2 || command -v python2.7 || command -v python2.6) -c \
"import BaseHTTPServer, SimpleHTTPServer; \
s = BaseHTTPServer.HTTPServer(('', 80), SimpleHTTPServer.SimpleHTTPRequestHandler); \
s.serve_forever()"

Attention, à ce moment, il ne faut pas encore taper une touche avant de continuer, car si nous regardons bien le bout de code retourné par le script, on constate qu’un serveur web est déclaré (cf. import BaseHTTPServer, SimpleHTTPServer ).
Dans le processus de génération du certificat, il y a un échange entre les services Let’s Encrypt et le serveur WEB hébergeant le domaine à sécuriser.

Donc, sur votre serveur WEB, il faut arrêter les services sur le port 80, et exécutez la ligne de commande démarrant le serveur Python.

Puis, retournez sur le serveur hébergeant Let’s Encrypt et appuyez sur une touche (... lorsque le serveur Python est démarré sur votre serveur WEB).

Refaite la manipulation pour chaque sous-domaine rentré dans la première commande.

Une fois fait, vous aurez ce message :

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/ns3018104.ip-149-202-80.eu/fullchain.pem.
   Your cert will expire on 2017-03-14. To obtain a new or tweaked
   version of this certificate in the future, simply run
   letsencrypt-auto again. To non-interactively renew *all* of your
   certificates, run "letsencrypt-auto renew"
 - If you lose your account credentials, you can recover through
   e-mails sent to pplancon@nystek-editions.com.
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Maintenant, rendez-vous dans le dossier suivant :

cd /etc/letsencrypt/live/mon_site.net

Vous aurez 4 fichiers présents dans ce dossier à savoir :

Fichier Description
cert.pem Certificat principal
chain.pemChaine de certificats supplémentaires
fullchain.pemCertificat principal + Chaine de certificats supplémentaires
privkey.pemClé privé du certificat

Pour finaliser l’installation, il ne reste plus qu’à mettre en place le certificat sur votre serveur WEB hébergeant le site à sécuriser, tel qu’on ait par exemple pour le serveur WEB APACHE2 :

        SSLEngine On
        SSLCertificateFile /etc/letsencrypt/live/mon_site.net/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/mon_site.net/privkey.pem

Ou encore par exemple pour le serveur WEB NGINX :

        ssl on;
        ssl_certificate /etc/letsencrypt/live/mon_site.net/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mon_site.net/privkey.pem;

Répondre à cet article

Plan du site | Suivre la vie du site RSS 2.0 | powered by NYSTEK-EDITIONS and NYSTEK-CONSULTING