Vor kurzem habe ich angefangen, SSL-Zertifikate von Let’s Encrypt für meine Website cPanelTips.com zu verwenden. Seien wir ehrlich, Let’s Encrypt hat die Art und Weise verändert, wie wir SSL-Zertifikate installieren.
Die alten Zeiten, als Sie Ihre Firmen- und persönlichen Daten eingeben, den CSR-Code generieren und dann an den SSL-Registrar senden mussten, um schließlich auf den CRT-Code zu warten, waren jetzt vorbei.
Let’s Encrypt ist eine einfache und schnelle Möglichkeit, SSL-Zertifikate sowohl für cPanel als auch für einfache Linux-Server zu installieren. In meinem Fall wurden diese SSL-Zertifikate auf CentOS 7.x 64 Bit installiert und sie funktionieren perfekt, bis das Fälligkeitsdatum für die SSL-Erneuerung kam.
Als jedoch die Zeit der Erneuerung des SSL-Zertifikats von Let’s Encrypt bevorstand, bemerkte ich etwas Seltsames, als ich die Option „erneuern“ mit dem Befehl „certbot“ ausführte. Siehe unten.
[[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
Der Fehler war eindeutig:
Dem Client fehlt die ausreichende Autorisierung ::Ungültige Antwort von http://nixcp.com/.well-known/acme-challenge/
Bei demselben Verlängerungsprozess habe ich auch einen weiteren Fehler auf einer anderen von mir verwalteten Website gesehen:
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://.
Ich hatte diese beiden Domains so konfiguriert, dass sie eine 301-Umleitung von http zu https verwenden. Ich habe diese laufende Curl gegen http getestet, um zu sehen, ob es ein Problem mit der 301-Umleitung gibt, aber das war nicht das Problem, soweit ich das sehe.
curl -I http://nixcp.com/.well-known/acme-challenge/
Es wurde ein 301-Weiterleitungs-OK-Status zurückgegeben, warum kann certbot dann die endgültige URL nicht erreichen?
Ich weiß es nicht, aber es hat sich etwas getan. Ich habe eine Ausnahme für die 301-Umleitung von http auf https erstellt, wodurch der Erneuerungsprozess von certbot für beide Domains problemlos ausgeführt werden konnte.
Dies war der Code, den ich verwendet habe, um 301 alle von http auf https umzuleiten, mit Ausnahme des .well-known-Verzeichnisses, das von Let’s Encrypt verwendet wird:
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; } }
Der Zugriff auf das .well-known-Verzeichnis über http war der Schlüssel, um den certbot-Erneuerungsprozess ohne Probleme auszuführen. Danach habe ich mich vergewissert, dass das von certbot verwendete Verifizierungsverzeichnis tatsächlich erstellt wurde:
mkdir -p /var/www/caneltips.com/.well-known/acme-challenge
Danach führe ich den Erneuerungsbefehl erneut aus, und das Ergebnis war:
Es wurde OK für weitere 3 Monate verlängert! 🙂
Let’s Encrypt:Dem Client fehlt die ausreichende Autorisierung ::Ungültige Antwort wurde zuletzt geändert:5. April 2017 von Esteban Borges