Pour arrêter d'utiliser TLS-SNI-01 avec Certbot


#1

Ceci est la version française du post suivant: How to stop using TLS-SNI-01 with Certbot

Let’s Encrypt retire bientôt le support de TLS-SNI-01 pour la validation de domaines. Vous êtes concerné si vous utilisez Certbot, et que vous avez reçu un email intitulé “Action required: Let’s Encrypt certificate renewals”, ou que vous voyez le message d’erreur suivant:

Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA

Dans ce cas, il est probable que vous ayez besoin de mettre à jour Certbot et sa configuration.

Si vous avez reçu un seul email de ce genre, il est possible que vous ayez déjà mis à jour Certbot depuis la dernière validation TLS-SNI-01 mentionnée dans le mail: dans ce cas, vous n’avez rien à faire. Les instructions suivantes permettent de le vérifier.

  1. Assurez-vous que votre version de Certbot est la 0.28 ou plus:

    certbot --version || /path/to/certbot-auto --version

Si la version obtenue est inférieure à 0.28, alors vous devez mettre à jour Certbot. Veuillez consulter le lien https://certbot.eff.org/ afin de suivre les instructions de mise à jour pour votre serveur web et votre système d’exploitation.

  1. Retirez toute référence explicite au challenge TLS-SNI-01 dans la configuration de renouvellement des certificats:

    sudo sh -c "sed -i.bak -e 's/^\(pref_challs.*\)tls-sni-01\(.*\)/\1http-01\2/g' /etc/letsencrypt/renewal/*; rm -f /etc/letsencrypt/renewal/*.bak"

  2. Simulez un renouvellement complet des certificats:

    sudo certbot renew --dry-run

Si la simulation a bien fonctionné, et que votre version de Certbot est la 0.28 ou plus, vous n’avez rien à faire de plus pour être compatible avec la fin du support de TLS-SNI-01. Si la simulation a échoué, corrigez les problèmes associés à la validation du ou des certificats, puis essayez de nouveau de simuler un renouvellement complet.

Si vous obtenez une erreur de type “connection refused” ou “connection timeout”, votre firewall pourrait être en train de bloquer le port 80. En effet, si TLS-SNI-01 utilise le port 443, le challenge HTTP-01 utilise le port 80. Dans l’idéal, votre serveur web devrait autoriser l’utilisation de ces deux ports. Si cela n’est pas possible, par exemple parce que votre FAI bloque le port 80, vous devrez utiliser un challenge de type DNS-01, ou utiliser un client ACME qui supporte TLS-ALPN-01.

A noter: si vous avez installé Certbot vers la fin 2015 ou au début de l’année 2016, ce dernier pourrait s’appeler letsencrypt ou letsencrypt-auto (le projet a été renommé certbot entre temps). Suivez les instructions au lien https://certbot.eff.org pour installer la dernière version de Certbot.

Tous les crédits pour ce post reviennent à @_az pour avoir suggéré l’utilisation d’instructions plus didactiques, et à @jsha pour avoir réécrit les instructions avec cette suggestion en tête.