LE Ratelimit und "Corrupte" Dateien  [GELÖST]

Locked
User avatar
mhagge
Community Moderator
Posts: 490
Joined: Wed 8. Aug 2018, 15:19

LE Ratelimit und "Corrupte" Dateien

Post by mhagge »

Ich hab mal wieder ein Problem mit "korrupten" Dateien und LetsEncrpt - und in der Folge bin ich in das Rate-Limit gestoßen.

Und zwar habe ich für 2 Domains die letzte Woche immer wieder Fehlermeldungen gehabt, dass das Zertifikat nicht erneuert werden konnte weil Dateien "Corrupt" sind. Eingedenk der bisherigen Erfahrungen damit (das kam immer mal wieder vor) habe ich das ignoriert damit es sich von selbst behebt - war bislang auch immer so.

Heute nun war die Meldung für beide Domains eine andere, nun lautete Sie " too many certificates already issued for exact set of domains". Wenn ich die Abfrage unter https://crt.sh/ nutze wurden in der Tat für beide Domains einige Tage lang jeden Tag ein Zertifikat beantragt und auch ausgestellt, das Rate-Limit wurde also "echt" geknackt.

Wenn ich mir das Protokoll in Keyhelp so anschaue ergibt das auch Sinn:

Code: Select all

[10-May-2020 00:00:21] INFO  --> Deploy challenge.
[10-May-2020 00:00:21] INFO  --> Token stored at: /home/keyhelp/www/.well-known/acme-challenge/VzVQWNRzhOkwVLoDd_bTxe67NelwZUmrURPJrCm3OKA
[10-May-2020 00:00:21] INFO  --> Notify CA that the challenge is ready.
[10-May-2020 00:00:21] INFO  --> Sending signed request to "https://acme-v02.api.letsencrypt.org/acme/chall-v3/4240539752/7RGeog".
[10-May-2020 00:00:23] INFO  --> Verification successful.
[10-May-2020 00:00:23] INFO  --> Sending CSR.
[10-May-2020 00:00:23] INFO  --> Sending signed request to "https://acme-v02.api.letsencrypt.org/acme/finalize/79296250/3303807819".
[10-May-2020 00:00:27] INFO  --> Certificate received.
[10-May-2020 00:00:27] INFO  --> Store fullchain.pem.test
[10-May-2020 00:00:27] INFO  --> File is corrupt!
[10-May-2020 00:00:27] INFO  --> Store cert.pem.test
[10-May-2020 00:00:27] INFO  --> File is corrupt!
[10-May-2020 00:00:27] INFO  --> Store chain.pem.test
[10-May-2020 00:00:27] INFO  --> File is corrupt!
[10-May-2020 00:00:27] INFO  --> Store complete.pem.test
[10-May-2020 00:00:27] INFO  --> File is corrupt!
[10-May-2020 00:00:27] ERROR --> a Let's Encrypt error occurred: Corrupt files detected.
Das für jede Domain die ganzen letzten Tage jeweils. Es wurde also versucht das SSL-Zertifikat zu beziehen, das wurde auch genehmigt und ausgestellt, konnte dann aber wegen der korrupten Dateien nicht gespeichert werden. Nächster Tag dann neuer Versuch.

Nun habe ich mir die Dateien unter /etc/ssl/keyhelp/letsencrypt mal angeschaut - ich kann so nicht erkennen, was da "corrupt" sein soll, das sieht nach meinem dafürhalten alles in Ordnung aus. (wobei die .pem.test-Dateien finde ich da nicht - möglicherweise ein "Rechte"-Problem - wobei ich da nichts dran geändert habe und das auch identisch mit einem anderen Server aussieht, wo das reibungslos läuft)

Jemand eine Idee wie ich das löse? Ich habe ja wenig Hoffnung, dass nach dem das RateLimit aufgehoben ist sich das Problem mti den "corrupten Dateien" von alleine regelt - und zumindestens bei einer der beiden Domains wäre es auch wichtig, dass die durchgehend per "https" erreichbar ist, also einfach löschen und versuchen ganz neu ausstellen zu lassen ist so recht auch keine Option....
User avatar
mhagge
Community Moderator
Posts: 490
Joined: Wed 8. Aug 2018, 15:19

Re: LE Ratelimit und "Corrupte" Dateien

Post by mhagge »

Nur zur Info: heute wäre dann wohl der Tag wo das Rate-Linit zurückgesetzt wurde - und die beiden Zertifikate wurden anstandslos und automatisch tatsächlich erneuert. Warum und wieso und was vorher das Problem war (klar, korrupte Dateien - aber die werden sich ja nicht von alleine "geheilt" haben) weiß ich allerdings nicht
User avatar
stfn116
Posts: 306
Joined: Wed 9. Jan 2019, 11:43
Location: Bavaria

Re: LE Ratelimit und "Corrupte" Dateien

Post by stfn116 »

ich hatte auch in letzter Zeit einige korrupte Dateien. Da das ohne ein KH Update passierte, gehe ich von einer Änderung bei LE aus.

Genau wie du es beschrieben hast, verlief am nächsten oder übernächsten Tag das Renewal problemlos und eine nicht-korrupte Zertifikatsdatei wurde erstellt.
:D Wer meint, Kompetenz sei teuer, möge es einmal mit Inkompetenz versuchen. Zitat: Bernd W. Klöckner. :lol:
User avatar
Alexander
Keyweb AG
Posts: 3842
Joined: Wed 20. Jan 2016, 02:23

Re: LE Ratelimit und "Corrupte" Dateien  [GELÖST]

Post by Alexander »

Da mir das Problem erst letzte Woche wieder über den Weg lief und für künftige Leser auf der Suche nach einer Lösung, hier einmal zusammengefasst, wie man die Meldung der korrupten Zertifikate manuell lösen kann.


In der Regel fixt das KeyHelp selbst, in dem es regelmäßig erneut versucht, die entsprechenden Zertifikate erneut zu besorgen.
Nun kann es allerdings vorkommen, dass man zwischenzeitlich ins Rate-Limit von Let's Encrypt gerät und keine Zertifikate mehr für die fragliche Domain ausgestellt werden können. Wenn jetzt noch dazu kommt, dass das Zertifikat kurz vor Ablauf steht und man unbedingt das Zertifikat erneuern muss, hier ein Leitfaden.

1) Besorgen des letzen gültigen Zertifikats

Korrupte Dateien treten auf, wenn erfolgreich ein Zertifikat bei Let's Encrypt beantragt wurde, es aber nicht korrekt auf dem Server gespeichert werden konnte. Das heißt, das Zertifikat existiert, nur nicht auf dem Server. Über folgende URL bekommt man das aktuelle Zertifikat. Ruft diese hierzu im Browser auf:

Code: Select all

https://crt.sh/?q=meine-tolle-domain.de
Hier wählt ihr aus der Liste das oberste (= neuste) Zertifikat aus (klickt auf die Nummer in der Spalte "cht.sh ID").
Klickt dann auf "Download Certificate: PEM"


2) Austausch des derzeit hinterlegten Zertifikats

Geht in folgenden Ordner:

Code: Select all

/etc/ssl/keyhelp/letsencrypt/<NAME>/<DOMAIN>/

<NAME> =  Name des Benutzers, oder 'keyhelp', wenn es sich um das Hauptzertifikat des Panels handelt.
Das aktuell hinterlegte Zertifikat befindet sich in den Dateien cert.pem, complete.pem, fullchain.pem.
Hier tauscht ihr nun das aktuelle Zertifikat mit dem Inhalt der heruntergeladenen Datei aus.

ACHTUNG: Wohingegen man den Austausch in der Datei cert.pem noch sehr einfach vornehmen kann, da der Inhalt der Datei nur aus dem derzeit hinterlegten Zertifikat besteht, muss man in den Dateien complete.pem und fullchain.pem aufpassen, dass man tatsächlich nur das derzeit hinterlegte Zertifikat austauscht, nichts weiter.


3) Neuladen der Dienste

Für normales Domain-Zertifikat:

Code: Select all

service apache2 reload
bzw.

Für das Hauptzertifikat des Panels (Hier sind es ggf. etwas mehr Dienste, je nachdem für was man es alles einsetzt).

Code: Select all

service apache2 reload ;
service postfix reload ;
service proftpd reload ;
service dovecot reload

Optional 4) Überblick über Gültigkeit:

Um schnell einen überblick, über alle Zertifikate und deren Gültigkeit zu erhalten kann man folgenden Befehl aufrufen

php /home/keyhelp/www/keyhelp/cronjob/mastercronjob.php --force-ssl-maintenance
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
Locked