Für einen Kunden muss ich seine LetsEncrypt-Zertifkate auf den FortiGate-Firewalls erneuern, weil sein Monitoring-System die Restlaufzeit von 30 Tagen fälschlicherweise als Störung gemeldet hat. Die automatische Erneuerung der Zertifikate gestaltet sich dabei unproblematisch; vielmehr liegt die Herausforderung in der Konfiguration der Schwellwerte im Monitoring-System. Dennoch möchte ich auf beide Aspekte eingehen.
Monitoring-Schwellwerte
Dem Monitoring-Team stellen wir folgende Schwellwerte als Empfehlung für sämtliche LetsEncrypt-Zertifikate des Kunden, unabhängig davon welches System sie präsentiert oder verlängert, zur Verfügung:
- Warnung – Ab 28 bis 30 Tagen
- Fehler – Ab 5 bis 7 Tagen
Erst bei Eintreten des Fehlerzustands im Monitoring-System sollte ein Ticket erzeugt werden. 5 bis 7 Tage sollten genug Zeit sein den Prozess manuell zu starten oder in die Fehleranalyse zu gehen, warum der Automated Certificate Management Environment (ACME)-Client das Zertifikat nicht korrekt innerhalb des Standard-Intervalls erneuert hat. Standardmäßig hat ein LetsEncrypt-Zertifikat eine Laufzeit von 90 Tagen und erst ab 60 Tagen ist es eigentlich zum Renewal vorgesehen. Mehr Informationen hierzu findet man in der ACME Renewal Information (ARI).
Die oben genannte Werte sind bereits individuell angepasst auf die Konfiguration der Kunden-spezifischen Umgebung. Ebenfalls denkbar wären folgende, allgemeinen Schellwerte, wenn nur einmal am Tag eine Prüfung der Laufzeiten erfolgt:
- Warnung – Ab 30 Tagen
- Fehler – Ab 28 Tagen
Renewal-Prozess
Die FortiGate-Firewalls sehen im Standard vor, dass ein Zertifikat 30 Tage vor Ablauf den Renewal-Prozess initiieren.
config vpn certificate local
edit <ACME_certificate_name>
set acme-renew-window 30
end
Über folgende Befehle kann man dann ein Zertifikat manuell, auch vor den 30 Tagen, erneuern.
ACME-Status prüfen:
get system acme status
get system acme acc-details
Zertifikate erneuern:
diagnose sys acme regenerate-client-config
diagnose sys acme restart
2-3 Minuten warten, danach neue Laufzeiten je Zertifikat kontrollieren:
get vpn certificate local details <Local certificate name>
diagnose sys acme status-full <Certificate’s CN domain>