Zertifikat - Fragestellung-Problemstellung - Falsches Gültigkeitsdatum
Hallo zusammen,
ich hoffe, es geht euch gut. Leider fehlt mir das notwendige Wissen über Zertifikate, um das vorliegende Problem eigenständig zu lösen. Auch bin ich unsicher, wo oder wie ich anfangen soll.
Das System habe ich in diesem Zustand übernommen, was es für mich schwierig macht, die Zusammenhänge nachzuvollziehen. Ich versuche, die aktuelle Situation zu beschreiben:
Ein Script überprüft in regelmäßigen Abständen, ob ein neues Zertifikat erstellt werden muss, und erstellt dieses bei Bedarf. Dies erfolgt über einen Certbot Docker, der wiederum ein LetsEncrypt-Zertifikat erstellt oder erneuert. Falls eine Erneuerung nicht notwendig ist, wird dies entsprechend gemeldet; andernfalls wird das Zertifikat auf einen Share kopiert.
Das Zertifikat gilt für *.domain.org. Es wird beispielsweise im Exchange hinterlegt und bleibt gültig bis zum nächsten Ablauf oder der nächsten Aktualisierung.
Auch bei anderen Diensten wird dieses Zertifikat hinterlegt (z.B. Syspass, Meshcentral). Sowohl Syspass als auch Meshcentral sind Docker Container auf derselben VM wie der Certbot. Ich habe noch nicht herausgefunden, wie genau Syspass und Meshcentral das neue Zertifikat erhalten, aber nach der Aktualisierung wird das neue Gültigkeitsdatum angezeigt.
Auf dem Share werden vier Dateien angelegt bzw. aktualisiert:
- domain.cer
- domain.key
- fullchain.pem
- privkey.pem
Bisher funktioniert alles einwandfrei.
Nun habe ich eine neue Nextcloud-VM aufgesetzt und wollte auch hier das *.domain.org Zertifikat verwenden. Daher kopierte ich die Dateien domain.cer und domain.key in den Apache2-Ordner, bzw. regle dies über ein einfaches Skript, das die Dateien vom Share holt. Die Nextcloud-Konfiguration wurde entsprechend angepasst.
Das Zertifikat wird im Browser als ungültig angezeigt, da es als abgelaufen gilt. Die Zertifikatsdaten stimmen, bis auf das Ablaufdatum: Es ist am 17.12.2023 abgelaufen, sollte aber, wie z.B. bei Syspass, vom 18.12.2023 bis 17.03.2024 gültig sein. Ich verstehe nicht, warum das neue Gültigkeitsdatum nicht übernommen wird, da es sich um dieselben Dateien handelt.
Das Änderungsdatum der oben genannten Dateien ist der 18.12.2023, was darauf hindeutet, dass es die richtigen Dateien sind.
An dieser Stelle komme ich nicht weiter. Ich weiß nicht, wo ich ansetzen soll, um zu verstehen, warum die neue Gültigkeit nicht übernommen wird. Warum funktioniert es bei den anderen Diensten?
Ich wäre für jeden Tipp und jede Idee, in welche Richtung ich suchen könnte, sehr dankbar.
Ich weiß, dass die Situation etwas verworren ist und alles andere als optimal, aber so habe ich das System übernommen, und so funktioniert es derzeit. Eine Dokumentation ist kaum vorhanden, weshalb ich mich von hinten nach vorne durcharbeiten muss, und das mit gefährlichem halbissen in einem Live-System. Ich versuche jedoch, das System langsam zu verstehen und zu korrigieren, ohne das Live-System zu gefährden.
Vielen Dank.
ich hoffe, es geht euch gut. Leider fehlt mir das notwendige Wissen über Zertifikate, um das vorliegende Problem eigenständig zu lösen. Auch bin ich unsicher, wo oder wie ich anfangen soll.
Das System habe ich in diesem Zustand übernommen, was es für mich schwierig macht, die Zusammenhänge nachzuvollziehen. Ich versuche, die aktuelle Situation zu beschreiben:
Ein Script überprüft in regelmäßigen Abständen, ob ein neues Zertifikat erstellt werden muss, und erstellt dieses bei Bedarf. Dies erfolgt über einen Certbot Docker, der wiederum ein LetsEncrypt-Zertifikat erstellt oder erneuert. Falls eine Erneuerung nicht notwendig ist, wird dies entsprechend gemeldet; andernfalls wird das Zertifikat auf einen Share kopiert.
Das Zertifikat gilt für *.domain.org. Es wird beispielsweise im Exchange hinterlegt und bleibt gültig bis zum nächsten Ablauf oder der nächsten Aktualisierung.
Auch bei anderen Diensten wird dieses Zertifikat hinterlegt (z.B. Syspass, Meshcentral). Sowohl Syspass als auch Meshcentral sind Docker Container auf derselben VM wie der Certbot. Ich habe noch nicht herausgefunden, wie genau Syspass und Meshcentral das neue Zertifikat erhalten, aber nach der Aktualisierung wird das neue Gültigkeitsdatum angezeigt.
Auf dem Share werden vier Dateien angelegt bzw. aktualisiert:
- domain.cer
- domain.key
- fullchain.pem
- privkey.pem
Bisher funktioniert alles einwandfrei.
Nun habe ich eine neue Nextcloud-VM aufgesetzt und wollte auch hier das *.domain.org Zertifikat verwenden. Daher kopierte ich die Dateien domain.cer und domain.key in den Apache2-Ordner, bzw. regle dies über ein einfaches Skript, das die Dateien vom Share holt. Die Nextcloud-Konfiguration wurde entsprechend angepasst.
Das Zertifikat wird im Browser als ungültig angezeigt, da es als abgelaufen gilt. Die Zertifikatsdaten stimmen, bis auf das Ablaufdatum: Es ist am 17.12.2023 abgelaufen, sollte aber, wie z.B. bei Syspass, vom 18.12.2023 bis 17.03.2024 gültig sein. Ich verstehe nicht, warum das neue Gültigkeitsdatum nicht übernommen wird, da es sich um dieselben Dateien handelt.
Das Änderungsdatum der oben genannten Dateien ist der 18.12.2023, was darauf hindeutet, dass es die richtigen Dateien sind.
An dieser Stelle komme ich nicht weiter. Ich weiß nicht, wo ich ansetzen soll, um zu verstehen, warum die neue Gültigkeit nicht übernommen wird. Warum funktioniert es bei den anderen Diensten?
Ich wäre für jeden Tipp und jede Idee, in welche Richtung ich suchen könnte, sehr dankbar.
Ich weiß, dass die Situation etwas verworren ist und alles andere als optimal, aber so habe ich das System übernommen, und so funktioniert es derzeit. Eine Dokumentation ist kaum vorhanden, weshalb ich mich von hinten nach vorne durcharbeiten muss, und das mit gefährlichem halbissen in einem Live-System. Ich versuche jedoch, das System langsam zu verstehen und zu korrigieren, ohne das Live-System zu gefährden.
Vielen Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 93410553202
Url: https://administrator.de/contentid/93410553202
Ausgedruckt am: 25.11.2024 um 12:11 Uhr
12 Kommentare
Neuester Kommentar
Ich verstehe nicht, warum das neue Gültigkeitsdatum nicht übernommen wird, da es sich um dieselben Dateien handelt.
Meine Glaskugel bei den wenigen sichhaltigen Informationen sagt, das erneuern hat nicht geklappt und du hast mit deinem Skript die alten Zertifikatsdateien rüber kopiert oder die existierenden am Ziel nicht überschrieben ...Das Cert-File sollte auch best practice die CAs enthalten deswegen würde ich die "fullchain.pem" bevorzugt nutzen.
PJ.
Ggf. wurde Apache einfach nicht neu gestartet. Die Datei-Struktur ist auch unübersichtlich, da sie nicht zur Konfiguration passt.
Das handelt man heute mit zwei Dateien ab: Eine PEM-Kette (Endinstanz oben, ohne Root-CA) und dem Schlüssel. Wenn die Dateinamen wörtlich gemeint sind, lieferst du derzeit keine Kette aus.
Grüße
Richard
Das handelt man heute mit zwei Dateien ab: Eine PEM-Kette (Endinstanz oben, ohne Root-CA) und dem Schlüssel. Wenn die Dateinamen wörtlich gemeint sind, lieferst du derzeit keine Kette aus.
Grüße
Richard
Nimm die fullchain.pem als Zertifikat da ist die ganze Kette für die Auslieferung durch den Browser untereinander enthalten. Die Extension spielt keine Rolle, in beiden ist/sind das/die Zertifikat(e) i.d.R. nach RFC7468 enthalten, kannst du ja einfach mit Texteditor öffnen und nachschauen.
Und nur nach dem Dateidatum zu gehen ist "shit"!
Sowas prüft man auf der Konsole im Zertifikat selbst mittels openssl
Und nur nach dem Dateidatum zu gehen ist "shit"!
Sowas prüft man auf der Konsole im Zertifikat selbst mittels openssl
openssl x509 -in fullchain.pem -enddate -noout
Der Vorschlag von @10138557388 ist IMO korrekt. Meine Apaches greifen durchweg auf die fullchain.pem zu.
Und ein Zertifikat mit der Endung .cer habe ich gar nicht im Ordner /etc/letsencrypt/live/xyz.de
Mag aber bei anderen Installationen anders sein.
Viele Grüße, commodity
SSLCertificateFile /etc/letsencrypt/live/nextcloud.xyz.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/nextcloud.xyz.de/privkey.pem
Und ein Zertifikat mit der Endung .cer habe ich gar nicht im Ordner /etc/letsencrypt/live/xyz.de
README cert.pem chain.pem fullchain.pem privkey.pem
Viele Grüße, commodity
Ergo wurde das Zertifikat in der Datei nicht aktualisiert! D.h. du musst schauen warum deine Certbot-Instanz das Zertifikat nicht erneuert hat! Der Fehler liegt also schon an der Quelle (evt. mountpoint mit dem Container nicht synchron), schau in die Logs!.
Bin da gerade noch etwas Ratlos....
Na, das Ergebnis zeigt doch klar, was Sache ist. Das ist ein veraltetes Zertifikat. Du musst das Richtige suchen.Ein Script überprüft in regelmäßigen Abständen, ob ein neues Zertifikat erstellt werden muss ...
Ich würde mal das Script untersuchen, wo die neuen Zertifikate konkret abgelegt werden. Auch kannst Du mal die Instanzen untersuchen, wo das Zertifikat aktuell ist, ob Du das dort findest.Ist immer ätzend, wenn der Vorgänger nichts dokumentiert hat. Leider ein häufiger Fall.
Viele Grüße, commodity