PROJET AUTOBLOG


Le Hollandais Volant

source: Le Hollandais Volant

⇐ retour index

Lets-encrypt / Certbot sur son PC pour un serveur distant

mardi 5 juillet 2016 à 18:44

Je veux renouveler mon certificat pour mon site à l’aide de Lets-encrypt.
Ici, prenons le cas où je n’ai pas accès à la machine qui héberge le site et que je n’ai qu’un accès FTP.
On peut toujours générer un certificat : il suffit de lancer Lets-encrypt sur son ordinateur, de générer les certificats et ensuite d’envoyer les certificats manuellement sur le site.

Je suis sous Linux Mint, et je fais tout en ligne de commandes.
Je me place dans un répertoire de travail :

mkdir certbot && cd certbot

Première chose, récupérer Lets-encrypt / Certbot :

git clone https://github.com/certbot/certbot

Une fois fait, on peut commencer.
La commande est ./letsencrypt-auto. On ne veut que le certificat, on ajoute certonly, et vu qu’on ne se trouve pas sur la machine qui accueille le site web, on doit se mettre en mode manuel avec --manual. Ensuite on ajoute les domaines pour qui on veut un certificat. Ce qui donne au final dans mon cas (pour deux domaines) :

./certbot/letsencrypt-auto certonly --manual -d lehollandaisvolant.net -d couleur-science.eu

Je lance ça. Si c’est la première fois que vous lancez certbot en mode manuel, il va devoir installer certains paquets et scripts, ce qui peut prendre quelques instants.
Vu que je suis sur un ordi qui n’est pas le serveur, il demande à loguer l’IP qui a fait la demande de certificat : j’accepte pour continuer.

Ensuite, il s’agit de prouver qu’on est bien le propriétaire du site pour lequel on demande un certificat. Ça se passe par la création d’un fichier sur notre site avec un contenu que Lets-encrypt nous donne.

En pratique, Lets-encrypt nous dit quelque chose comme ça :

Make sure your web server displays the following content at
http://lehollandaisvolant.net/.well-known/acme-challenge/v9IszSuhkY0yg-fpV3sxxxxxxx7KMhAzXY0AxP-tUvc before continuing:

v9IszSuhkY0yg-fpV3sxxxxxxx7KMhAzXY0AxP-tUvc.Y4xbv1PhMl2rRtjYAaaaAaaaAAAaA_ONg_x-zBcF8uHYxt4

Il faut utiliser FTP (ou SSH ou autre) pour créer un fichier /.well-known/acme-challenge/v9IszSuhkY0yg-fpV3sxxxxxxx7KMhAzXY0AxP-tUvc à la racine de votre site, et utiliser un éditeur de texte pour ouvrir le fichier et y mettre le texte v9IszSuhkY0yg-fpV3sxxxxxxx7KMhAzXY0AxP-tUvc.Y4xbv1PhMl2rRtjYAaaaAaaaAAAaA_ONg_x-zBcF8uHYxt4.

Une fois que c’est fait, essayez d’accéder au fichier dans votre navigateur : le fichier doit être accessible (pas d’erreur 404 ou 403 ou autre).
Si ça marche, poursuivez dans le terminal avec la touche « Entrée ».

Si vous avez demandé plusieurs domaines différents, il faudra faire cette manip pour chaque domaine (attention, les codes aléatoires changent à chaque fois).

Quand c’est tout bon, Lets-encrypt a généré vos certificats. Ils se trouvent dans le dossier /etc/letsencrypt/live/ puis votre domaine.
Il y a 4 fichiers dedans : cert.pem, chain.pem, fullchain.pem, privkey.pem.

Pour l’installation des certificats, je passe par cPanel que me propose mon hébergeur. Il faut aller dans la section "SSL/TLS". On gère ensuite la liste des certificats et clés privés.

Il faut uploader sa clé privée (le fichier privkey.pem) dans le champ sur la section Private Keys, et le fichier du certificat (fullchain.pem) dans la section Certificates.

Les certificats sont uploadés maintenant, il reste à les installer. Toujours dans cPanel, allez sur Install and Manage SSL for your site, puis choisissez le domaine que vous avez puis un certificat (celui que vous venez d’uploader doit figurer dans la liste, ou bien cliquez simplement sur « autofill by domain » pour pré-remplir les champs à l’aide des fichiers uploadés) et enfin validez par « Install ».

Et là c’est bon : votre site est maintenant en HTTPS et fonctionne. Faites la même manipulation d’installation pour les autres domaines (l’envoie des fichiers n’est nécessaire qu’une seule fois, mais l’installation du certificat doit se faire pour chaque domaine).

N’oubliez pas de supprimer le dossier .well-known et son contenu : il n’y en a plus besoin.
De même, souvenez-vous que le certificat expirera dans 90 jours, et il faudra refaire tout ça.