bugger
Goto Top

Script zur Zertifikatsverlängerung x Tage vor ablauf

Hallo,

ich würde gerne mein LetsEncrypt Zertifikat automatisch verlängern lassen bevor dieses abläuft.

Das einfachste für mich wäre, da noch einige andere Dinge passieren nachdem das Zertifikat verlängert wurde, wenn es in meinem Script integriert wäre.
Beim ausführen von certbot certificates bekomme ich folgendes geliefert:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Found the following certs:
  Certificate Name: domain.de
    Domains: domain.de
    Expiry Date: 2018-09-29 06:40:34+00:00 (VALID: 58 days)
    Certificate Path: /share/CACHEDEV1_DATA/.qpkg/Certbot/live/domain.de/fullchain.pem
    Private Key Path: /share/CACHEDEV1_DATA/.qpkg/Certbot/live/domain.de/privkey.pem
-------------------------------------------------------------------------------

Meine Idee wäre jetzt irgendwie mit grep die 58 Tage auszulesen und dann ein if X weniger als 7 Tage dann.... Allerdings habe ich keine Ahnung wie das aussehen müsste damit er nur diese Zahl nimmt. Außerdem müsste "Saving debug log to /var/log/letsencrypt/letsencrypt.log" ignoriert werden, dass schreibt er jedesmal mit bevor er überhaupt den rest darstellt.

Vielleicht denke ich aber auch nur wieder zu kompliziert und jemand hat eine einfachere Idee, sollte aber nach Möglichkeit auch als Zusatz im Script möglich sein.

Content-ID: 381987

Url: https://administrator.de/contentid/381987

Ausgedruckt am: 24.11.2024 um 22:11 Uhr

Voiper
Voiper 01.08.2018 um 17:42:25 Uhr
Goto Top
Moin,

was spricht dagegen,

/opt/letsencrypt/letsencrypt-auto renew

in einen Cron zu packen, der täglich durchläuft? Letsencrypt verlängert dann automatisch, sowie das Cert fällig ist.

An die Zeile hängst du dann noch ein >/dev/null ran, damit der Log in die Tonne geht, was ich persönlich nicht machen würde.

Außerdem wäre es ganz nett, wenn nächstes mal ein paar Infos zu deiner Umgebung kommen. Ich habe jetzt linux erraten, weil du /var/log/ geschrieben hast.

Gruß, V
Tezzla
Tezzla 01.08.2018 aktualisiert um 17:44:03 Uhr
Goto Top
Hallo Bugger,

Certbot kann das doch builtin: ./certbot-auto renew
Vorher den Webserver stoppen und danach starten.

In das gleiche Script könntest du ja die anderen Sachen inkludieren. Dazu könnte man die Hashwerte des Certs vorher und nachher vergleichen und danach entsprechen losrennen.

Oder habe ich da was missverstanden?

VG
T

Edit: Voiper war schneller face-smile
Bugger
Bugger 01.08.2018 um 17:58:32 Uhr
Goto Top
Ja, ihr habt beide recht.^^ Allerdings macht der ein renew wenn das Zertifikat noch 30 Tage gültig ist und das ist mir viel zu früh. 2 oder vielleicht 4 Tage sind völlig ausreichend.
System habe ich vergessen, ist ein QNAP NAS.
Tezzla
Tezzla 01.08.2018 um 18:42:14 Uhr
Goto Top
Dann den Cronjob entsprechend timen, sollte doch dann klappen.

Das Cert wird immer um 90 Tage verlängert.

Und nur so aus Interesse: was stört dich an dem vorzeitigen Renew?
Bugger
Bugger 01.08.2018 um 18:48:30 Uhr
Goto Top
Du kannst mir natürlich auch gerne sagen, wie ich ein cronjob auf 90 Tage einstelle, das hatte ich schon wieder aufgegeben da ich dazu auch nichts gefunden hatte, würde mir aber genauso weiterhelfen. Derzeit steht der auf 3 Monate, aber 3 Monate sind nunmal nicht 90 Tage face-smile

Und an dem vorzeitigen Renew stört mich, dass ich anschließend bei mehreren Handys das Zertifikat per Hand aktzeptieren muss. Und das würde ich lieber alle 88 bis 90 als alle 60 Tage machen face-smile
Tezzla
Lösung Tezzla 01.08.2018 aktualisiert um 19:42:41 Uhr
Goto Top
Cronjob täglich um 22 Uhr laufen lassen:
0 22 * * 0  user /PfadzumScript/check_cert_age.sh

check_cert_age.sh
$cert_file="PfadzumCert/Cert.pfx"  
if [[ $(find $cert_file -mtime +89 -print) ]]; then
  /PfadzumCertbot/certbot-auto renew
fi

Täglich ein Script losschicken, was das Alter (89 Tage) des Certs prüft und bei Bedarf den Renew macht.

Habe keine Linuxkiste hier, bitte auf Tippfehler prüfen.

Edit noch: Bei mir auf den iOS und Android Geräten wird Lets Encrypt als Trusted angesehen. Hast du das Zertifikat richtig eingebaut?
Bugger
Bugger 01.08.2018 um 20:43:39 Uhr
Goto Top
Funktioniert super, vielen Dank. Genau was ich gesucht habe face-smile

Grundsätzlich funktioniert das Zertifikat auch. Mit iOS habe ich auch keine Probleme damit. Aber auf Android mit DAVDroid, da muss ich jedes mal das Zertifikat bestätigen.