Webserver & Dienste

TLS-Zertifikate automatisieren, bevor die kurzen Laufzeiten dich einholen

Mit sinkenden Laufzeiten ist manuelle Zertifikatsverwaltung endgültig erledigt. Wer ACME nicht automatisiert, tauscht künftig alle paar Wochen von Hand, und genau dabei passieren die Ausfälle.

Administrator konfiguriert einen Webserver am Laptop
Seit 1997 am Markt Präsenz & Live-Online 4,9 aus 503 Google-Bewertungen Auch Inhouse für dein Team
Worum es geht

Warum manuelles Zertifikatsmanagement gerade kippt

Solange ein Zertifikat ein Jahr oder länger galt, war der Kalendereintrag ein akzeptables Verfahren. Jemand hat einmal im Jahr einen CSR erzeugt, die Datei per Ticket bei der CA eingereicht, das Ergebnis auf die Webserver kopiert und neu geladen. Mit 200 Tagen wird daraus ein halbjährlicher Pflichttermin, mit 47 Tagen ein Vorgang, der etwa achtmal im Jahr auf jedem betroffenen System ansteht. Bei zwanzig Hostnamen, verteilt auf Reverse Proxies, Mailserver, interne Portale und ein paar Appliances, ist das keine Fleißaufgabe mehr, sondern ein Ausfallrisiko.

In der Praxis scheitert es selten am Ausstellen selbst. Es scheitert daran, dass niemand vollständig weiß, wo überall Zertifikate liegen. Das gleiche Zertifikat steckt in /etc/nginx/ssl, im Java-Keystore der Anwendung, im HAProxy-PEM mit angehängtem Private Key, im Postfix und in der Firmware eines Load Balancers, der sich nur über eine Weboberfläche befüllen lässt. Die Erneuerung läuft dann durch, aber der Dienst hält das alte Zertifikat weiter im Speicher, weil der Reload fehlt.

Typische Fehler sind schnell aufgezählt: certbot renew läuft, aber der deploy-hook wurde nie geschrieben. Die HTTP-01-Challenge bricht, weil ein Redirect von HTTP auf HTTPS auch /.well-known/acme-challenge/ erfasst. Die DNS-01-Challenge scheitert an einem API-Token mit zu weiten Rechten oder an einer zu hohen TTL. Der Cronjob läuft als falscher Benutzer und darf den Private Key nicht lesen. Und das Monitoring meldet den Ablauf erst, wenn die Nutzer schon anrufen.

Miniatur-Szene: Webserver-Turm mit umkreisendem Globus, ein- und ausgehende Anfragepfeile, Zertifikatskarte

Der Weg vom manuellen Zertifikat zur automatischen Erneuerung

  1. 01 Bestand und Ablaufdaten erfassen
  2. 02 ACME-Client und Challenge festlegen
  3. 03 Erneuerung per systemd-Timer
  4. 04 Deploy-Hook mit Reload je Dienst
  5. 05 Ablauf-Monitoring mit Schwellwert
  6. 06 Ausrollen über Konfigurationsmanagement
Was du mitnimmst

So sieht eine tragfähige Automatisierung aus

Das Ziel ist ein Ablauf, der ohne menschlichen Eingriff funktioniert und trotzdem nachvollziehbar bleibt. Die folgenden Punkte beschreiben die Bausteine, in der Reihenfolge, in der du sie sinnvoll angehst.

Bestand aufnehmen und Verantwortlichkeiten klären

Erfasse jeden Endpunkt mit Hostname, Aussteller, Ablaufdatum, Speicherort und Reload-Kommando. Ein Skript, das mit openssl s_client -connect host:443 und openssl x509 -noout -enddate über eine Liste läuft, liefert dir in einer Stunde mehr Klarheit als jede Wiki-Seite. Trenne dabei sauber zwischen öffentlich vertrauenswürdigen Zertifikaten und internen, denn nur erstere sind von den verkürzten Laufzeiten betroffen.

ACME-Client und Challenge-Typ bewusst wählen

Certbot ist der verbreitetste Client und in allen gängigen Distributionen paketiert, acme.sh kommt als Shell-Skript ohne Python-Abhängigkeiten aus und lässt sich auf Appliances und in schlanken Containern leichter unterbringen. Für einzelne Webserver reicht HTTP-01, für Wildcards und für Systeme ohne Port 80 aus dem Internet brauchst du DNS-01 mit einem Provider-Hook. Wenn deine DNS-Zone das hergibt, ist ein delegierter CNAME auf eine eigene Acme-Zone der sauberste Weg, weil das API-Token dann nur diese eine Zone ändern darf.

Erneuerung über systemd-Timer statt Cron fahren

Der certbot.timer beziehungsweise ein eigener Timer mit RandomizedDelaySec verteilt die Anfragen und vermeidet, dass alle Systeme zur vollen Stunde gleichzeitig bei der CA anklopfen. Persistent=true holt verpasste Läufe nach einem Reboot nach. Mit systemctl list-timers und journalctl -u certbot-renew siehst du jederzeit, wann zuletzt erneuert wurde, und du bekommst über OnFailure eine echte Fehlermeldung statt einer verschluckten Cron-Mail.

Deploy-Hooks schreiben, die den Dienst wirklich neu laden

Ein erneuertes Zertifikat auf der Platte nützt nichts, solange der Prozess das alte im Speicher hält. Hinterlege pro Dienst einen Hook, der die Dateien an den Zielort bringt, Besitzer und Modus setzt und dann nginx -s reload, apachectl graceful oder systemctl reload postfix ausführt. Wichtig ist ein vorgeschalteter Konfigurationstest wie nginx -t, damit ein Fehler nicht erst beim Reload auffällt. Für Java-Anwendungen gehört die Umwandlung in PKCS#12 mit openssl pkcs12 -export in denselben Hook.

Ablauf aktiv überwachen statt auf Mails der CA zu vertrauen

Prüfe die Restlaufzeit an dem Punkt, an dem der Client sie sieht, also über eine TLS-Verbindung zum Endpunkt und nicht über die Datei im Dateisystem. Der check_http-Check von Nagios oder Naemon kann das mit -C, Prometheus liefert es über den Blackbox Exporter als probe_ssl_earliest_cert_expiry, Zabbix bringt einen eigenen Item-Typ mit. Setz die Warnschwelle deutlich vor dem Ablauf, bei 47-Tage-Zertifikaten sind zehn bis vierzehn Tage ein brauchbarer Wert.

Interne CA und Konfigurationsmanagement mitdenken

Für interne Dienste, die nie ein öffentliches Zertifikat brauchen, ist eine eigene CA mit ACME-Schnittstelle wie step-ca oder eine Microsoft-CA mit automatischer Enrollment-Strecke oft der ruhigere Weg. Die Verteilung von Hooks, Timern und Trust-Stores gehört anschließend in Ansible oder ein vergleichbares Werkzeug, damit ein neu ausgerollter Host die Automatisierung von Anfang an mitbringt und nicht nachträglich von Hand nachgerüstet wird.

Wissen prüfen

Teste dich und finde deinen Weg

Bevor du einen Kurs buchst, lohnt sich eine ehrliche Standortbestimmung. Die Tests sind kostenlos und ohne Anmeldung.

Passender Lernpfad

Karrierepfad

Linux Webserver Administrator

In diesem Lernpfad baust du Schritt für Schritt das Know-how auf, um Linux-basierte Webserver sicher, stabil und effizient zu betreiben. Du lernst, wie du typische Webserver-Dienste installierst, konfigurierst und im Alltag zuverlässig administrierst, von der ersten Bereitstellung bis zum laufenden Betrieb. Im Senior Level lernst du das notwendige Wissen was über die reine Webserver Administration hinausgeht. 

Gut zu wissen

Häufige Fragen zu TLS-Automatisierung mit ACME

Noch etwas offen? Wir sind ohne Warteschleife für dich da.

Frag uns direkt
Ab wann gelten welche maximalen Laufzeiten für TLS-Zertifikate?
Die Verkürzung erfolgt in mehreren Stufen. Seit dem 15. März 2026 liegt die Obergrenze bei 200 Tagen, in der nächsten Stufe sinkt sie auf 100 Tage und in der letzten Stufe im Jahr 2029 auf 47 Tage. Betroffen sind öffentlich vertrauenswürdige Zertifikate, also alles, dem Browser und Betriebssysteme ohne eigenen Trust-Store-Eingriff vertrauen sollen. Zertifikate aus einer internen CA sind davon nicht erfasst, dort legst du die Laufzeit selbst fest.
Certbot oder acme.sh, was passt besser?
Beide sprechen dasselbe ACME-Protokoll, der Unterschied liegt in der Integration. Certbot ist in Python geschrieben, in den Repositories von Debian, Ubuntu, RHEL und SUSE vorhanden und bringt Plugins für Apache und NGINX mit, die die Konfiguration selbst anpassen können. acme.sh ist ein reines Shell-Skript ohne nennenswerte Abhängigkeiten, läuft dadurch auch auf minimalen Systemen und deckt mit seinen DNS-Hooks sehr viele Provider ab. Wenn du ohnehin Distributionspakete bevorzugst, nimm Certbot, wenn du schlanke oder ungewöhnliche Systeme betreust, ist acme.sh meist der pragmatischere Weg.
Wie teste ich, ob die automatische Erneuerung wirklich funktioniert?
Mit certbot renew --dry-run läuft der komplette Vorgang gegen die Staging-Umgebung der CA, inklusive Challenge, ohne dass Rate Limits verbraucht oder Zertifikate ausgestellt werden. Der Test deckt allerdings nicht ab, ob dein Deploy-Hook den Dienst korrekt neu lädt, deshalb solltest du den Hook zusätzlich einmal von Hand ausführen und danach mit openssl s_client -connect host:443 prüfen, welches Zertifikat der Server tatsächlich ausliefert.
Warum schlägt die HTTP-01-Challenge fehl, obwohl der Webserver läuft?
Der häufigste Grund ist ein pauschaler Redirect von HTTP auf HTTPS, der auch den Pfad /.well-known/acme-challenge/ erfasst. Nimm diesen Pfad im Server-Block explizit vom Redirect aus. Weitere typische Ursachen sind eine Firewall oder ein WAF vor dem System, das Port 80 nur intern erlaubt, ein DNS-Eintrag, der auf einen anderen Host als den erneuernden zeigt, und Berechtigungen im Webroot, die den ACME-Client die Challenge-Datei nicht schreiben lassen.
Was mache ich mit Systemen, die keinen ACME-Client unterstützen?
Bei Appliances und Geräten ohne Shell-Zugriff läuft die Erneuerung auf einem zentralen Host, der das Zertifikat anschließend über die Management-API oder per SCP auf das Zielsystem schiebt und dort einen Reload auslöst. Wo es gar keine Schnittstelle gibt, ist ein vorgelagerter Reverse Proxy meist die bessere Antwort: Die TLS-Terminierung passiert dann auf einem System, das du automatisieren kannst, und die Appliance bleibt hinter dem Proxy.

Zuletzt geprüft am 26. Juli 2026.

Das sagen Teilnehmer

Echte Stimmen aus unseren IT-Kursen

Qualitativ sehr guter Kurs. Ruhiger und wertschätzender Umgang. Keine Informationsüberlastung.
Rückmeldung aus dem Kurs „Ansible Kompaktkurs“
Erwartungen wurden erfüllt. Angekündigte Themen in hinreichender Tiefe bearbeitet. Zudem gutes Zeitmanagement.
Rückmeldung aus dem Kurs „Source Code Management und CI / CD (DO4)“
Persönlich für dich da

Deine Ansprechpartner

Du bist dir nicht sicher, welcher Kurs oder welches Level zu dir passt? Wir beraten dich persönlich und kostenlos.

Yves Hoppe

Yves Hoppe

Weiterbildung & Beratung

Hilft dir, aus dem Linux-Programm den passenden Kurs oder Lernpfad zu finden.

Norbert Jansen

Norbert Jansen

Beratung & Inhouse

Plant mit dir Inhouse-Trainings, die exakt auf eure Systemlandschaft und Distributionen zugeschnitten sind.

Nächster Schritt

Zertifikatsautomatisierung im Kurs durchspielen

Wenn du ACME, Deploy-Hooks und Monitoring nicht nebenbei im Produktivbetrieb erarbeiten willst, üben wir das mit dir an laufenden Systemen. In der NGINX Webserver Administration und in Apache Webserver einrichten und administrieren unter Linux richtest du TLS-Terminierung und automatische Erneuerung selbst ein, der Linux Security Intensivkurs ordnet das Ganze in Schlüsselverwaltung, interne CA und Härtung ein. Alle Kurse gibt es als Präsenztermin und Live-Online, auf Wunsch auch als Inhouse-Schulung mit deiner Umgebung als Ausgangspunkt. Melde dich, dann klären wir gemeinsam, welcher Kurs zu deinem Stand passt.