Outils pour utilisateurs

Outils du site


kb:crypto:letsencrypt

Ceci est une ancienne révision du document !


Let's Encrypt

Comprendre Let's Encrypt

Let's Encrypt est un Autorité de Certification qui est GRATUITE et qui permet de signer un certificat de façon automatique et quasi instantané.

Deux méthodes existent pour valider un certificat :

  1. Par requête HTTP : Lors de la demande de certificat, l'API va effectuer une requête HTTP sur la dites URL dans le répertoire /.well-known/acme-challenge d'un fichier très spécifique qu'il aura demandé de créer lors de la dites requête.
  2. Par requêtes DNS : Lors de la requête, l'API fera une requête TXT particulière sur le DNS. Celle-ci n'est soit pas automatique ou elle oblige que le serveur WEB puissent mettre à jour sa zone DNS. Bien que plus contraignante, elle permet depuis la version 2 de signer des certificats WildCard.

Pourquoi cette méthode

L'objectif de cette page est de générer et faire signer des certificats avec Let's Encrypt.
Cette méthode n'est pas la plus simple, mais elle permet de mettre en place DANE/TLSA et HPKP ainsi que d'avoir des certificats en ECC.

Pour cela, il faut juste le packet certbot/letsencrypt.

Cette méthode n'est pas éligible au renouvellement automatique de certbot, donc il faudra ajouter manuellement l'entrée en tache cron. La méthodologie, si suivie a la lettre, permet un gestion simple de ces certificats.

Prérequis

FIXME

Génération du certificat

Pour chaque domaines, nous allons créer les dossiers où seront stocké les certificats et les clés:

# mkdir -p /etc/letsencrypt/wiki.virtit.fr/live
# mkdir -p /etc/letsencrypt/wiki.virtit.fr/archive

puis on génère le certificat :

# openssl ecparam -name prime256v1 -genkey -out /etc/letsencrypt/wiki.virtit.fr/live/private.key
# openssl req -new -key /etc/letsencrypt/wiki.virtit.fr/live/private.key -nodes -days 3650 -out /etc/letsencrypt/wiki.virtit.fr/live/cert.csr

Ces certificats seront unique mais pensez à les renouveler régulièrement :-).

Signature du certificat

Pour signer votre certificat, il faut lancer la commande suivante :

 # certbot certonly --webroot -w /var/www/letsencrypt/ -d wiki.virtit.fr --csr /etc/letsencrypt/wiki.virtit.fr/live/cert.csr --cert-path /etc/letsencrypt/wiki.virtit.fr/live/cert.pem --chain-path /etc/letsencrypt/wiki.virtit.fr/live/chain.pem --fullchain-path /etc/letsencrypt/wiki.virtit.fr/live/fullchain.pem

Renouvellement du certificat

Pour renouveler le certificat, il faut déplacer le certificat, et les chaines de certificats.
Je vous conseil d'ajouter la tâche cron suivante :

0 2 1 * * /bin/rm /etc/letsencrypt/wiki.virtit.fr/archive/* || true && /bin/mv /etc/letsencrypt/wiki.virtit.fr/live/*.pem /etc/letsencrypt/wiki.virtit.fr/archive/ && /usr/bin/certbot certonly --webroot -w /var/www/letsencrypt/ -d wiki.virtit.fr --csr /etc/letsencrypt/wiki.virtit.fr/live/cert.csr --cert-path /etc/letsencrypt/wiki.virtit.fr/live/cert.pem --chain-path /etc/letsencrypt/wiki.virtit.fr/live/chain.pem --fullchain-path /etc/letsencrypt/wiki.virtit.fr/live/fullchain.pem --post-hook '/bin/systemctl reload apache2'

Il faudra adapter la dite commande avec le bon domaine et les bons post-hook.

kb/crypto/letsencrypt.1521324850.txt.gz · Dernière modification : 2018/03/17 22:14 de beu