Récemment, j'ai commencé à utiliser les certificats SSL Let's Encrypt pour mon site cPanelTips.com. Avouons-le, Let's Encrypt a changé la façon dont nous installons les certificats SSL.
L'ancien temps où vous deviez renseigner les informations de votre entreprise et personnelles, générer le code CSR, puis le soumettre au registraire SSL, pour enfin attendre le code CRT est maintenant révolu.
Let's Encrypt est un moyen simple et rapide d'installer des certificats SSL pour les serveurs cPanel et Linux. Dans mon cas, ces certificats SSL ont été installés sur CentOS 7.x 64 bits et ils fonctionnent parfaitement jusqu'à la date d'échéance du renouvellement SSL.
Cependant, lorsque le moment du renouvellement du certificat SSL Let's Encrypt était sur le point d'arriver, j'ai remarqué quelque chose de bizarre lors de l'exécution de l'option "renew" à l'aide de la commande "certbot". Voir ci-dessous.
[[email protected]:~]/usr/bin/certbot renew Saving debug log to /var/log/letsencrypt/letsencrypt.log Cert is due for renewal, auto-renewing... Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org Renewing an existing certificate Performing the following challenges: http-01 challenge for nixcp.com Waiting for verification... Cleaning up challenges Attempting to renew cert from /etc/letsencrypt/renewal/nixcp.com.conf produced an unexpected error: Failed authorization procedure. nixcp.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://nixcp.com/.well-known/acme-challenge/qtxjYi0a3FYNWpvqW-WTyZZzj848Yr0J6Sfx-75xDrg
L'erreur était claire :
Le client ne dispose pas d'une autorisation suffisante ::Réponse invalide de http://nixcp.com/.well-known/acme-challenge/
Lors du même processus de renouvellement, j'ai également constaté une autre erreur sur un autre site Web que je gère :
All renewal attempts failed. The following certs could not be renewed: /etc/letsencrypt/live/mysecondsite.com/fullchain.pem (failure) 1 renew failure(s), 0 parse failure(s) IMPORTANT NOTES: - The following errors were reported by the server: Domain: mysecondsite.com Type: unauthorized Detail: Invalid response from http://mysecondsite.com/.well-known/acme-challenge/YjP9PAcIEANeX50kZJ9vJ-lARkryYs7yFSLhKBU9Y_M: 404 Not Found To fix these errors, please make sure that your domain name was entered correctly and the DNS A record(s) for that domain contain(s) the right IP address. The A records were configured ok at the DNS server, and the first thing that came to my mind was that certbot was trying to connect to http://, instead of https://.
J'avais configuré ces deux domaines pour utiliser une redirection 301 de http vers https, j'ai testé cette boucle en cours d'exécution contre http pour voir s'il y avait un problème avec la redirection 301, mais ce n'était pas le problème à ma connaissance.
curl -I http://nixcp.com/.well-known/acme-challenge/
A renvoyé un état OK de redirection 301, alors pourquoi certbot n'est pas en mesure d'atteindre l'URL finale ?
Je ne sais pas, mais il y a quelque chose qui a marché. J'ai créé une exception pour la redirection 301 de http vers https, ce qui a permis au processus de renouvellement du certbot de s'exécuter sans problème pour les deux domaines.
C'est le code que j'ai utilisé pour rediriger 301 tous de http à https, à l'exception du répertoire .well-known utilisé par Let's Encrypt :
server { listen 80; server_name www.nixcp.com nixcp.com; # Redirect all requests to https location / { return 301 https://nixcp.com$request_uri; } # This rule excludes the .well-known directory from the 301 redirect. location /.well-known { root /var/www/nixcp.com; } }
Laisser le répertoire .well-known accessible via http était la clé pour exécuter le processus de renouvellement du certbot sans problème. Après cela, je me suis assuré que le répertoire de vérification utilisé par certbot était bien créé :
mkdir -p /var/www/caneltips.com/.well-known/acme-challenge
Après cela, j'exécute à nouveau la commande de renouvellement, et voici le résultat :
Il a été renouvelé OK pour une autre période de 3 mois ! 🙂
Let's Encrypt :Le client ne dispose pas d'une autorisation suffisante ::La réponse invalide a été modifiée pour la dernière fois :le 5 avril 2017 par Esteban Borges