Résoudre les problèmes de validation avec Certbot

CertificatSur mes serveurs publics tournant sous CentOS, j’utilise Certbot pour obtenir les certficats Let’s Encrypt nécessaires pour mes hébergements sécurisés. Or, depuis le 9 janvier 2018, la méthode de validation TLS-SNI-01 a été désactivée suite à la découverte d’une faille de sécurité. On peut certes encore l’utiliser pour renouveler des certificats existants, mais toute tentative de génération d’un nouveau certificat renvoie un message d’erreur.

La manière la plus simple de résoudre le problème consiste à mettre à jour Certbot vers la version 0.21 et de basculer vers la méthode de validation HTTP-01.

À ce jour, le dépôt EPEL ne fournit que la version 0.20. Pour éviter de tourner les pouces en attendant, on va suivre la méthode préconisée par la communauté Let’s Encrypt, et on va remplacer le paquet certbot par certbot-auto.

Dans un premier temps, on va supprimer le paquet certbot avec ses nombreuses dépendances Python.

# yum autoremove certbot

Ensuite, on va récupérer le client certbot-auto.

# cd /usr/local/sbin
# wget -c https://dl.eff.org/certbot-auto
# chmod 0700 certbot-auto

Le client certbot-auto accepte les mêmes arguments que certbot. Pour la génération et le renouvellement de mes certificats, j’utilise un script mkcert.sh. Dans ce script, je vais procéder à deux modifications.

  • Je remplace la commande certbot par certbot-auto.
  • La méthode de validation tls-sni-01 est remplacée par la méthode http.

Concrètement, voici à quoi cela ressemble dans le script.

certbot-auto certonly \
  --non-interactive \
  --email info@microlinux.fr \
  --preferred-challenges http \
  --standalone \
  --agree-tos \
  --renew-by-default \
  --webroot-path /var/www/microlinux-site \
  -d microlinux.fr -d www.microlinux.fr \
  --webroot-path /var/www/microlinux-blog \
  -d blog.microlinux.fr \
  --webroot-path /var/www/microlinux-mail \
  -d mail.microlinux.fr \
  --webroot-path /var/www/microlinux-owncloud \
  -d cloud.microlinux.fr \
  ...

Lors de la première invocation, certbot-auto se charge d’installer automatiquement toutes les dépendances nécessaires pour son bon fonctionnement.

Creating virtual environment...
Installing Python packages...
Installation succeeded.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for microlinux.fr
http-01 challenge for www.microlinux.fr
http-01 challenge for blog.microlinux.fr
http-01 challenge for mail.microlinux.fr
http-01 challenge for cloud.microlinux.fr
...

Notre problème de validation est désormais résolu. Notons au passage que certbot-auto vérifie la présence éventuelle d’une nouvelle version et gère automatiquement la mise à jour.

Ce contenu a été publié dans CentOS, Documentation Microlinux, avec comme mot(s)-clé(s) , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.