DE
Jetzt starten

Blog · Wissen

SSL-Zertifikat automatisch verlängern: so klappt es sicher

Wie die automatische SSL-Verlängerung funktioniert, warum Handarbeit bei kürzeren Laufzeiten nicht mehr reicht, und wie du Certbot einrichtest und prüfst.

Von Matthias Gutknecht · · 13 Min. Lesezeit
Isometrische Illustration: ein Zertifikat mit Uhr wird über ein Erneuerungssymbol durch ein neues, bestätigtes Zertifikat ersetzt

Damit sich ein SSL-Zertifikat automatisch verlängert, muss ein kleines Programm regelmässig nachsehen, ob das Zertifikat bald abläuft. Ist das der Fall, holt es ein neues und sorgt dafür, dass der Webserver es auch verwendet. Bei einem Hosting, in dem SSL inbegriffen ist, erledigt das der Anbieter. Auf einem eigenen Server richtest du es einmal ein, zum Beispiel mit Certbot, und prüfst danach, ob es wirklich funktioniert. Hier liest du beide Wege, die typischen Fehler und wie du merkst, dass etwas nicht stimmt, bevor deine Besucherinnen und Besucher eine Warnung sehen.

Das Wichtigste in Kürze

  • Zertifikate von Let's Encrypt gelten heute 90 Tage. Let's Encrypt empfiehlt, sie automatisch etwa alle 60 Tage zu erneuern.
  • Die Laufzeiten werden in den nächsten Jahren deutlich kürzer. Von Hand verlängern ist deshalb keine dauerhafte Lösung.
  • Ein erneuertes Zertifikat auf dem Server reicht nicht: Der Webserver muss neu geladen werden, sonst liefert er weiter das alte aus.
  • Prüf nach jeder Einrichtung von aussen, welches Zertifikat deine Website tatsächlich zeigt und wann es abläuft.
  • Ist SSL in deinem Hosting enthalten, musst du keinen Server pflegen.

Was «automatisch verlängern» technisch bedeutet

Ein SSL-Zertifikat (genauer: TLS-Zertifikat) ist ein digitaler Ausweis für deine Domain. Er sorgt dafür, dass der Browser das Schloss-Symbol zeigt und die Verbindung verschlüsselt ist. Ausgestellt wird er von einer Zertifizierungsstelle, kurz CA (Certificate Authority), einer Organisation, der die Browser vertrauen. Welche Arten von Zertifikaten es gibt, steht im Überblick zu den SSL-Zertifikat-Arten.

Jedes Zertifikat hat ein Ablaufdatum. Danach zeigt der Browser eine Sicherheitswarnung, und viele Besucher brechen an dieser Stelle ab. «Verlängern» heisst deshalb in Wirklichkeit: Vor dem Ablauf wird ein neues Zertifikat ausgestellt und das alte ersetzt.

Automatisch geht das mit ACME. ACME ist ein Protokoll, also eine festgelegte Sprache zwischen deinem Server und der Zertifizierungsstelle. Laut dem Glossar von Let's Encrypt kann jede kompatible Software damit ein Zertifikat anfordern. Das Programm auf deinem Server heisst ACME-Client oder ACME-Agent. Der bekannteste ist Certbot.

Der Ablauf hat drei Schritte:

  1. Nachweis: Der ACME-Agent beweist, dass er die Domain kontrolliert. Erst danach darf er Zertifikate anfordern, erneuern und widerrufen, so beschreibt es Let's Encrypt in «Wie es funktioniert».
  2. Ausstellung: Die Zertifizierungsstelle stellt ein neues Zertifikat aus, und der Client speichert es auf dem Server.
  3. Einsatz: Der Webserver lädt das neue Zertifikat. Dieser Schritt wird am häufigsten vergessen.

Das Ziel dahinter formuliert Let's Encrypt selbst: Ein HTTPS-Server soll ein vertrauenswürdiges Zertifikat erhalten, ohne dass ein Mensch eingreifen muss.

Warum Verlängern von Hand keine Lösung mehr ist

Früher galten gekaufte Zertifikate ein Jahr oder länger. Einmal im Jahr eine Erinnerung im Kalender, und die Sache war erledigt. Das ändert sich gerade grundlegend.

  • Let's Encrypt heute: Die Zertifikate gelten laut der offiziellen FAQ 90 Tage. Let's Encrypt empfiehlt, sie automatisch alle 60 Tage zu erneuern.
  • Die Branche insgesamt: Nach einem Beschluss des CA/Browser Forums, eines Gremiums aus Zertifizierungsstellen und Browser-Herstellern, darf ein öffentliches Zertifikat seit dem 15. März 2026 höchstens 200 Tage gelten. Ab März 2027 sind es noch 100 Tage, ab März 2029 noch 47.
  • Let's Encrypt morgen: Let's Encrypt stellt ab dem 10. Februar 2027 standardmässig Zertifikate mit 64 Tagen aus und will danach auf 45 Tage gehen.

Dazu kommt: Let's Encrypt hat seinen Dienst für Ablauf-E-Mails eingestellt. Wer sich bisher darauf verlassen hat, dass eine Erinnerung kommt, bekommt heute keine mehr.

Bei 45 oder 47 Tagen Laufzeit müsstest du rund acht- bis neunmal im Jahr ein Zertifikat erneuern und einspielen. Für ein Café, ein Treuhandbüro oder einen Verein mit einer Website ist das kein realistischer Rhythmus. Die automatische Erneuerung ist also keine Komfortfunktion mehr, sondern die Voraussetzung dafür, dass die Website erreichbar bleibt.

Drei Wege zur automatischen Erneuerung

Wie du die automatische Verlängerung bekommst, hängt davon ab, wo deine Website liegt.

Wo deine Website liegt Wer verlängert Was du tun musst
Hosting mit SSL inklusive Der Hosting-Anbieter Domain korrekt verbinden, sonst nichts
Webspace mit Control Panel Das Panel, sobald SSL aktiviert ist SSL pro Domain einschalten und den Status im Blick behalten
Eigener Server (VPS, Root-Server) Du, mit einem ACME-Client Client installieren, Timer, Reload und Überwachung einrichten

Hosting mit SSL inklusive: Das ist der einfachste Weg. Das Zertifikat gehört zum Paket, und du musst keinen Client installieren. Wichtig ist nur, dass deine Domain richtig auf das Hosting zeigt, denn sonst kann der Anbieter den Domain-Nachweis nicht erbringen.

Webspace mit Control Panel: Viele Schweizer Hoster bieten im Kundencenter einen Schalter für Let's Encrypt. Einmal aktiviert, erneuert das Panel im Hintergrund. Sieh nach, ob die Option für jede Domain und jede Subdomain aktiv ist, also auch für die Variante mit www.

Eigener Server: Hier bist du selbst verantwortlich. Der Rest dieses Beitrags zeigt, worauf es ankommt.

Wer gekaufte Zertifikate mit längerer Laufzeit nutzt, muss sie bei jeder Verlängerung in der Regel neu ausstellen lassen und installieren. Viele kommerzielle Zertifizierungsstellen bieten inzwischen aber auch ACME an, sodass sich dieselbe Automatik mit Certbot einrichten lässt.

Auf dem eigenen Server: Certbot richtig einrichten

Dieser Teil richtet sich an alle, die einen eigenen Linux-Server betreiben oder betreiben lassen. Hörst du die Begriffe zum ersten Mal, gib den Abschnitt der Person weiter, die deinen Server betreut.

Voraussetzung: der Nachweis über die Domain

Bevor Let's Encrypt ein Zertifikat ausstellt, muss dein Server zeigen, dass er die Domain kontrolliert. Dafür gibt es zwei gängige Methoden, die man «Challenges» nennt:

  • HTTP-01: Der Client legt eine Datei unter einer bekannten Adresse ab, nämlich unter /.well-known/acme-challenge/. Die Zertifizierungsstelle ruft sie über Port 80 ab. Port 80 ist der Standard-Zugang für unverschlüsseltes HTTP und muss dafür offen sein.
  • DNS-01: Der Client setzt einen DNS-Eintrag, also einen Eintrag im Adressbuch deiner Domain. Das braucht Zugriff auf deinen DNS-Anbieter, meist über eine Schnittstelle. Diese Methode ist nötig für Wildcard-Zertifikate (ein Zertifikat für alle Subdomains) und für Server, die von aussen nicht über Port 80 erreichbar sind.

Wie DNS-Einträge grundsätzlich funktionieren, erklärt die Hilfe zu DNS-Einträgen. DNS-Einträge und TLS-Richtlinien spielen übrigens auch bei E-Mail-Domains eine Rolle, zum Beispiel beim Einrichten von MTA-STS.

Der Timer: Certbot muss regelmässig laufen

Certbot verlängert nur, wenn es aufgerufen wird. Bei den meisten Installationen geschieht das über einen systemd-Timer namens certbot.timer. Ein Timer ist ein eingebauter Wecker des Betriebssystems. Laut der Anleitung der Universität Konstanz wird er bei der Installation mit eingerichtet und aktiviert. Mit systemctl status certbot.timer siehst du, ob er läuft.

Die Alternative ist ein Cronjob, ein zeitgesteuerter Auftrag, der certbot renew ausführt. Certbot erneuert dabei nur Zertifikate, die bald ablaufen. Ein Lauf ein- oder zweimal täglich ist deshalb unproblematisch.

Let's Encrypt bittet in seiner Integrationsanleitung darum, solche regelmässigen Aufträge zu einer zufälligen Zeit laufen zu lassen, damit nicht alle Server gleichzeitig anfragen. Empfohlen wird, ein Zertifikat zu erneuern, wenn noch ein Drittel seiner Laufzeit übrig ist, bei 90 Tagen also rund 30 Tage vor Ablauf. Der Timer gehört wie Updates und Backups zur laufenden Pflege eines Servers. Wie man diese Pflege dauerhaft organisiert, beschreibt ein Beitrag über Best Practices der Softwarewartung.

Neu laden nicht vergessen

Hier liegt der häufigste Fehler: Certbot speichert das neue Zertifikat zwar auf der Festplatte, aber der laufende Webserver hält das alte noch im Speicher. Er liefert es weiter aus, bis es abläuft.

Die Lösung ist ein Deploy-Hook. Das ist ein Befehl, den Certbot nach jeder erfolgreichen Erneuerung automatisch ausführt. Er lädt den Webserver neu, bei Apache etwa mit systemctl reload apache2. Teste die Konfiguration vor dem Neuladen, bei nginx zum Beispiel mit nginx -t. So merkst du sofort, wenn ein Tippfehler den Reload verhindert.

Denk auch an andere Dienste, die dasselbe Zertifikat nutzen, etwa einen Mailserver oder einen Reverse Proxy. Jeder braucht sein eigenes Neuladen.

Prüfen, ob die Verlängerung wirklich greift

Eine eingerichtete Automatik ist erst dann eine Automatik, wenn du einmal gesehen hast, dass sie funktioniert. Diese vier Prüfungen reichen:

  1. Probelauf: certbot renew --dry-run spielt eine Erneuerung durch, ohne ein echtes Zertifikat zu holen. Meldet er Fehler, behebe sie, bevor das echte Ablaufdatum näher rückt.
  2. Timer und Protokolle: Prüf mit systemctl status certbot.timer, wann der nächste Lauf geplant ist, und sieh in den Logs nach, ob der letzte erfolgreich war.
  3. Von aussen prüfen: Entscheidend ist, was deine Besucher sehen. Der Befehl openssl s_client -connect deinedomain.ch:443 -servername deinedomain.ch | openssl x509 -noout -dates -issuer zeigt das Ablaufdatum und den Aussteller des Zertifikats, das dein Server tatsächlich ausliefert.
  4. Browser und Funktionstest: Ruf die Website im Browser auf, das Zertifikat soll als gültig erscheinen. Technisch lässt sich das mit curl -I https://deinedomain.ch prüfen, die Antwort sollte ohne Zertifikatsfehler kommen.

Ohne Kommandozeile geht es auch: Klick im Browser auf das Schloss-Symbol neben der Adresse und öffne die Zertifikatsdetails. Dort steht, bis wann das Zertifikat gültig ist. Liegt das Datum nach einer Erneuerung immer noch beim alten Wert, fehlt meistens der Reload.

Wenn die Erneuerung fehlschlägt

Starte immer mit dem Probelauf certbot renew --dry-run. Die Fehlermeldung nennt fast immer die Ursache. Die häufigsten sind:

  • Challenge nicht erreichbar: Die Datei unter /.well-known/acme-challenge/ kann nicht abgerufen werden, etwa weil der Webroot falsch eingetragen ist.
  • Port 80 blockiert: Eine Firewall lässt die Prüfung der Zertifizierungsstelle nicht durch.
  • Weiterleitung schluckt die Prüfung: Eine Regel, die alle Anfragen pauschal auf HTTPS umleitet, kann auch die Challenge-Anfrage umleiten. Die Weiterleitung sollte die Challenge-Adresse ausnehmen.
  • DNS stimmt nicht: Die Domain zeigt auf einen anderen Server, oder bei DNS-01 fehlen die Zugangsdaten zur Schnittstelle des DNS-Anbieters. Hast du kürzlich die Nameserver geändert, kann die Umstellung noch laufen.
  • Kein Deploy-Hook: Die Erneuerung hat geklappt, aber der Webserver zeigt das alte Zertifikat.

Wiederhol nach der Korrektur den Probelauf und danach die Prüfung von aussen.

Wichtig für eigene Skripte: Let's Encrypt verlangt in der Integrationsanleitung, Erneuerungsfehler mit wachsenden Abständen zu wiederholen, zum Beispiel nach einer Minute, nach zehn Minuten, nach 100 Minuten und danach einmal pro Tag. Hunderte Versuche pro Stunde lösen das Problem nicht und können an die Rate Limits stossen, also an die Obergrenzen für Anfragen. Erneuerungen über ARI (ACME Renewal Information, ein Verfahren, bei dem die Zertifizierungsstelle den besten Erneuerungszeitpunkt vorschlägt) sind laut Let's Encrypt von allen Rate Limits ausgenommen.

Ist das Zertifikat bereits abgelaufen, zeigt der Browser eine Warnung, und deine Website wirkt für viele Besucher nicht erreichbar. Weitere mögliche Ursachen findest du in der Hilfe, warum eine Website nicht erreichbar ist. Sobald der Fehler behoben ist, holt certbot renew ein neues Zertifikat, und nach dem Reload ist die Warnung weg.

Ablaufdaten im Blick behalten

Weil Let's Encrypt keine Ablauf-E-Mails mehr verschickt, brauchst du eine eigene Kontrolle. In der Praxis heisst das:

  • Rechtzeitig warnen: Lass dich alarmieren, wenn ein Zertifikat in weniger als etwa 20 Tagen abläuft. Normalerweise wird rund 30 Tage vor Ablauf erneuert. Bleibt das aus, hast du so noch genug Zeit.
  • Von aussen messen: Ein Monitoring sollte das ausgelieferte Zertifikat prüfen, nicht nur die Datei auf dem Server.
  • Eine Liste führen: Notier pro Domain und Subdomain den Aussteller, das Ablaufdatum, wo das Zertifikat liegt und welcher Befehl den Dienst neu lädt. Bei mehreren Domains hilft auch ein Multi-Domain-Zertifikat, die Übersicht zu behalten.
  • HTTPS festschreiben: Mit HSTS teilst du dem Browser mit, deine Seite nur noch verschlüsselt aufzurufen. Das setzt voraus, dass die Erneuerung zuverlässig läuft, denn mit HSTS wird ein Zertifikatsfehler zur Sackgasse.

Wie die gesamte Verwaltung von Zertifikaten aussieht, von der Ausstellung bis zur Kontrolle, beschreibt der Beitrag zur SSL-Verwaltung.

So ist es bei MADLAB // Publishing

Bei MADLAB // Publishing ist Claude oder ChatGPT dein Redaktor: Der Assistent baut und ändert die Website im Gespräch. Wir veröffentlichen, hosten und verwalten sie, mit Vorschau, Versionen und Zurückholen. Mit dem Plan «Website – MADLAB-Hosting» gehört das Zertifikat dazu:

  • Kein Certbot, kein Timer, kein Deploy-Hook. Jede Adresse deiner Website bekommt ihr eigenes Zertifikat von Let's Encrypt, auch die Variante mit www und jede weitere Domain. Ausstellen, Erneuern und Einsetzen laufen bei uns automatisch.
  • Nur die Domain verbinden. Du richtest die DNS-Einträge einmal so ein, wie es die Hilfe beschreibt, den Rest übernehmen wir. Nach dem Verbinden dauert es meist Minuten, manchmal einige Stunden, bis das Zertifikat da ist. Siehe Eigene Domain verbinden.
  • HTTPS durchgehend. Wer http:// aufruft, landet auf https://, und jede Antwort trägt den HSTS-Header.
  • Gemischte Inhalte fallen auf. Bevor du veröffentlichst, prüft dein Assistent die Seiten. Ein Bild oder Skript, das noch über http:// eingebunden ist, meldet die Prüfung als Fehler.
  • Server in der Schweiz und der EU, mit täglichen Backups, und jede Änderung als Version, die du zurückholen kannst.

Veröffentlichst du mit «Website – eigenes Hosting» per FTP oder SFTP auf deinen bestehenden Webspace, bleibt das Zertifikat Sache deines bisherigen Hosters. Dann gilt, was in diesem Beitrag zum Control Panel steht.

Läuft deine Website heute auf einem eigenen Server oder einem CMS, lässt sich die bestehende Website übernehmen. Den Einstieg zeigen Website mit Claude erstellen und Website mit ChatGPT erstellen. Was die Pläne kosten, steht unter Pläne und Zusatzpakete.

Quellen

Häufige Fragen

Muss ich ein erneuertes SSL-Zertifikat neu installieren?

Auf einem eigenen Server ja, zumindest muss der Webserver neu geladen werden. Ein Deploy-Hook erledigt das nach jeder Erneuerung automatisch. Bei einem Hosting mit SSL inklusive kümmert sich der Anbieter darum.

Wie oft erneuert sich ein Let's-Encrypt-Zertifikat?

Die Zertifikate gelten heute 90 Tage, und Let's Encrypt empfiehlt eine automatische Erneuerung alle 60 Tage. Certbot prüft dafür meist zweimal täglich und erneuert nur, wenn das Ablaufdatum näher rückt. Mit den angekündigten kürzeren Laufzeiten wird der Rhythmus enger.

Bekomme ich eine Warnung, bevor mein Zertifikat abläuft?

Von Let's Encrypt nicht mehr, der E-Mail-Dienst für Ablaufwarnungen wurde eingestellt. Auf einem eigenen Server brauchst du deshalb ein eigenes Monitoring, das das ausgelieferte Zertifikat prüft. Bei einem Control Panel lohnt sich ein Blick in die Benachrichtigungseinstellungen deines Hosters.

Was kostet die automatische Verlängerung?

Let's-Encrypt-Zertifikate sind kostenlos, auch bei jeder Erneuerung. Kosten entstehen höchstens für den Server und die Zeit, die du in Einrichtung und Kontrolle steckst. Bei gekauften Zertifikaten hängt der Preis vom Anbieter und von der Zertifikatsart ab.

Warum zeigt meine Website trotz Erneuerung das alte Zertifikat?

Fast immer fehlt der Reload des Webservers. Das neue Zertifikat liegt dann zwar auf der Festplatte, der laufende Dienst nutzt aber noch das alte. Lade den Dienst neu und prüf danach von aussen mit dem Browser oder mit openssl.