Letsencrypt

De Wiki doc

Révision datée du 26 octobre 2019 à 19:18 par Ycharbi (discussion | contributions) (→‎Génération : Suppression d'un espace en trop dans la commande.)

EN CHANTIER

Article en cours d'écriture et/ou de test. Certains éléments peuvent être incomplets et mener à un résultat non fonctionnel.
Merci de ne pas rager.

Letsencrypt est une autorité de certification lancée le 3 décembre 2015 (Bêta Version Publique). Elle permet de générer des certificats X.509 gratuitement et sans limite de nombre.

C'est un service fourni par l’Internet Security Research Group (ISRG). Les sponsors principaux sont l’Electronic Frontier Foundation (EFF), la Fondation Mozilla, Akamai, Cisco Systems , PlanetHoster et OVH. D'autres partenaires, tels que l'autorité de certification IdenTrust, l'Université du Michigan (U-M), la Stanford Law School, la Fondation Linux, l'entreprise Free10, ainsi que Stephen Kent de Raytheon / BBN Technologies et Alex Polvi de CoreOS sont également impliqués dans le projet. Bref c'est un truc sérieux et cela représente quand même 51,21% des certificats TLS en avril 2018 d'après NetTrack.

Cette documentation traitera principalement de la génération de certificat sans la partie automatisation de configuration WEB.

Génération de certificats

Il existe différents modes de génération de certificats. Voici ceux que j'utilise avec l'outil certbot.

Mode autonome

Ce mode permet de récupérer un certificat signé directement sur une machine proposant un service WEB (les commande seront à effectuées sur la machine répondant au domaine).

ATTENTION

Cette méthode installe tout un tas de bordel sur la machine dont un serveur Apache. Pour ma part, je lance une machine dédiée (un Squashfs dans mon cas), qui se chargera de la génération des certificats que je récupèrent et transferts sur la machine de destination (opération lourde destinée principalement à des tests).

Installation

apt install python-certbot-apache

Génération

Il faut que le domaine à signé dirige les requêtes vers l'adresse IP de la machine certbot sinon l'erreur 503 renvoyé par celui-ci et interrompra la procédure.

ASTUCE

Il est possible d'automatiser le remplissage du nom de domaine lié au certificat à générer si le paramètre "ServerName domaine.ycharbi.fr" est ajouté dans un vHost. La procédure de création d'un vHost HTTPS par certbot sera donc automatique (sinon il demande de taper le numéro correspondant au vHost affiché dans la liste qu'il a généré en regardant dans le répertoire sites-availables).

Génération de certificat pour tube.ycharbi.fr

certbot --authenticator standalone --installer apache -d tube.ycharbi.fr --pre-hook "service apache2 stop" --post-hook "service apache2 start"

INFORMATION

Il va demander une adresse e-mail qui servira à prévenir de l'expiration imminente du certificat.

Le résultat est stocké dans ces emplacements:

  • Clé publique/certificat: /etc/letsencrypt/live/tube.ycharbi.fr/fullchain.pem
  • Clé privé: /etc/letsencrypt/live/tube.ycharbi.fr/privkey.pem

Il est bien sûr possible d'en faire un certificat chaîné pour certaines applications comme Haproxy par exemple:

cat /etc/letsencrypt/live/tube.ycharbi.fr/fullchain.pem /etc/letsencrypt/live/tube.ycharbi.fr/privkey.pem > /etc/ssl/tube.ycharbi.fr.pem

Source de la section

Mode manuel

Cette méthode permet de générer des certificat joker (wildcard). Selon moi, elle est beaucoup plus propre et n'installe pas tout un tas de paquets sur la machine. Elle peut être utilisée depuis une machine qui n'héberge aucun services (je l'utilise personnellement depuis mon proxy inverse).

Installation

apt install certbot

Génération

certbot certonly --rsa-key-size 4096 --server https://acme-v02.api.letsencrypt.org/directory --manual -d '*.ycharbi.fr'

Il va poser une chiée de question et donner le nom et la valeur d'un champ TXT DNS à entrer dans la zone du domaine à signé (il s'agit d'une clé d'authentification pour le protocole ACMEv2). Une fois ce champ renseigné et appliqué dans la zone DNS, faire <entrer> au prompte pour récupérer le certificat ainsi que sa clef privée (disponibles dans /etc/letsencrypt/archive/ycharbi.fr).

Automatisation

À faire

Sources de la section