Lors du renouvellement d’un certificat Let’s Encrypt sous Plesk, il peut arriver que la validation échoue avec une erreur 400 Bad Request. Le message ressemble souvent à ceci :
Attempting to renew cert (example.com) from /etc/letsencrypt/renewal/example.com.conf produced an unexpected error:
Failed authorization procedure.
www.example.com (http-01):
urn:ietf:params:acme:error:unauthorized ::
The client lacks sufficient authorization ::
Invalid response from
http://www.example.com/.well-known/acme-challenge/2VQAX5eA_dSyl1RB5MjfcHr9YinF8T7nw3Z6OxU5Zu4:
"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>"Langage du code : PHP (php)
En clair, Let’s Encrypt essaye de lire un fichier de validation dans /.well-known/acme-challenge/, mais le serveur ne renvoie pas le token attendu. À la place, il renvoie une page d’erreur 400 Bad Request.
Ce n’est donc pas un problème “SSL” au sens strict. C’est d’abord un problème d’accès HTTP au fichier de challenge ACME.
Comprendre le challenge HTTP-01 de Let’s Encrypt
Lorsque Plesk demande ou renouvelle un certificat Let’s Encrypt avec le challenge HTTP-01, l’autorité de certification vérifie que le serveur répond bien sur le domaine demandé.
Pour cela, elle tente d’accéder à une URL du type :
http://example.com/.well-known/acme-challenge/TOKENLangage du code : JavaScript (javascript)
Le fichier doit être accessible publiquement sur le port 80. Let’s Encrypt précise que le challenge HTTP-01 nécessite le trafic entrant sur le port 80, et que les IP de validation ne sont pas publiées car elles peuvent changer.
Let’s Encrypt suit les redirections HTTP, jusqu’à 10 redirections, mais uniquement vers http ou https sur les ports 80 ou 443. En revanche, si une redirection crée une boucle, pointe vers un hôte incorrect, casse le Host header, passe par un proxy mal configuré, ou renvoie une page 400, la validation échoue.
Dans Plesk, cette validation est généralement gérée par l’extension Let’s Encrypt / SSL It!. Plesk peut renouveler automatiquement les certificats, mais seulement si le domaine reste accessible de l’extérieur pendant la validation.