Automatische Erneuerung von Let's Encrypt Zertifikaten

  • Das Erstellen und Einrichten in i-MSCP von Let's Encrypt Zertifikaten hat gut geklappt.


    Weil diese nur 1 Quartal lang gültig sind, stellte sich mir die Frage od es eine Möglichkeit gäbe, diesen Prozess zu automatisieren.


    Mit dem folgenden Script ist es mir gelungen, in dieser Richtung etwas aufzusetzen. Leider zeigt das Zertifikat nach dem Durchlaufen des Scripts immer noch das alte Ablaufdatum an.


    Dieses Script wird über seinen Namen renew-ssl.sh und der benötigten Domain "<domain>.<tld>" aufgerufen.


    Weiss jemand, wo das Problem liegt?
    Wäre es nicht auch sinnvoll, diesen Automatisationsprozess in einem neuen Release vom i-MSCP einzubauen?

  • Habe dafür bereits ein Plugin erstellt, was mit dem Release der 1.3.0 veröffentlicht wird.

  • Ich habe so ein Skript auch schon mal gepostet:


    Letsencrypt, Zertifikat für eine Domain


    Wenn du nur spezielle Domain aktualisieren willst, kannst du die SELECT-Abfrage einschränken (so mache ich das).



    Dein Skript hat ein großes Problem: i-MSCP speichert die Zertifikate in der Datenbank. Wenn du das nicht machst, werden deine Zertifikate regelmäßig überschrieben. Außerdem musst du Apache neu laden, nicht SSH.

  • @Ninos +
    @f4Nm1Z9k2P


    Vielen Dank für die Infos. :)
    Ich habe das Python-Script getestet. Es funktioniert einwandfrei. Wenn man es jedoch automatisiert laufen lassen möchte, sollten keine Rückfragen gestellt werden, wie z.B. dass für die aktuelle Domain noch keine Aktualisierung möglich sei.
    Oder ist irgendwo in der Datenbank oder sonst an einem Ort per Script auslesbar, wann ein Zertfikat abläuft? Damit könnte man dieses mit dieser Information ergänzen und nur diejenigen Zertifikate erneuern lassen, die abgelaufen sind.

  • Eigentlich sollte die Option --keep dafür sorgen, dass gar nicht danach gefragt wird.


    Das Skript ist nicht dazu gemacht, automatisch ausgeführt zu werden. Es fängt überhaupt keine Fehler ab. Dazu ist das Plugin viel sinnvoller!


    Ich rufe das Skript halt 1x pro Monat manuell auf. Ist kaum Aufwand und ich sehe in der Regel, ob etwas schief läuft. Außerdem habe ich ein paar Dienste, die ich manuell aktualisieren muss.

  • @Ninos +
    @f4Nm1Z9k2P


    Oder ist irgendwo in der Datenbank oder sonst an einem Ort per Script auslesbar, wann ein Zertfikat abläuft?

    Klaro geht das.


    Code
    1. stat -c %Z CERT.PEM

    Liefert Dir das Erstellungsdatum. Wenn Du die Aktuelle Uhrzeit abziehst (date "+%s"), dann hast Du das Alter.
    Ich erneuere nur wenn das Alter größer 70 Tage ist.


    Code
    1. MAXALTER=6048000; # ---- Berechnet sich wie folgt 70 Tage * 24*60*60=86400 Sekunden

    -- formerly known as knut --
    ensim -> confixx -> vhcs -> ispcp -> kloxo -> easyscp -> ispconfig 3 -> i-mscp -> ispconfig 3.1