Let's Encrypt/Anwendungen
Überblick
Let’s Encrypt ermöglicht die automatisierte Ausstellung und Erneuerung von TLS-Zertifikaten über das ACME-Protokoll (RFC 8555)
- Ein ACME-Client weist die Kontrolle über eine Domain nach und ruft ein Zertifikat ab
- Zertifikate besitzen eine maximale Gültigkeit von 90 Tagen, daher sollte eine automatische Erneuerung konfiguriert werden
ACME-Client-Implementierungen
Zur Nutzung von Let’s Encrypt muss eine ACME-Clientsoftware eingesetzt werden
- Es stehen zahlreiche Clients von Drittanbietern zur Verfügung.
- Keine Überprüfung oder Zertifizierung dieser Clients durch Let’s Encrypt
- Browserbasierte Clients werden nicht berücksichtigt, da sie manuelle Erneuerungen fördern
Certbot
Für die meisten Szenarien wird Certbot empfohlen.
- Unterstützt automatisiertes Ausstellen, Installieren und Erneuern von Zertifikaten
- Bietet Auto-Konfiguration sowie Expertenmodus.
- Umfangreiche Dokumentation und breite Betriebssystemunterstützung
ACMEv1 / ACMEv2
Alle unterstützten ACME-Clients verwenden ACMEv2 (RFC 8555)
- ACMEv1 wurde am 1. Juni 2021 vollständig abgeschaltet
Erste Schritte
Zur Aktivierung von HTTPS wird ein Zertifikat benötigt, das über ACME angefordert wird
- Der Nachweis der Domainkontrolle erfolgt über einen ACME-Client oder über Integrationen beim Hosting-Provider
- Entscheidend ist, ob Shell-Zugang verfügbar ist
Mit Shell-Zugang
Für Shell-Umgebungen wird Certbot empfohlen
- Unterstützt automatische Abläufe ohne Ausfallzeit
- Alternativ können weitere ACME-Clients eingesetzt werden
Für Tests kann die Staging-Umgebung genutzt werden, um Rate Limits nicht auszulösen
Ohne Shell-Zugriff
Optimal ist die Nutzung integrierter Let’s-Encrypt-Unterstützung des Hosting-Providers
- Zertifikate werden automatisch angefordert und erneuert
Falls keine Integration vorhanden ist, kann ein Zertifikat manuell erzeugt und anschließend beim Provider hochgeladen werden
- Dieser Ansatz ist aufwendig und muss regelmäßig wiederholt werden. Gilt als Notlösung
ACME-Challenge-Typen
Für die Domainvalidierung stehen mehrere Verfahren zur Verfügung. Auswahl und Einsatz hängen von Infrastruktur, DNS-Zugriff und Port-Verfügbarkeit ab
| Methode | Port | Vorteile | Nachteile |
|---|---|---|---|
| HTTP-01 | Port 80 |
|
|
| DNS-01 | TXT-Record |
|
|
| TLS-ALPN-01 | Port 443 |
|
|
Funktionsweise von ACME
Architektur
Der ACME-Ablauf folgt festen Objekten und Schritten:
- Account Key – kryptografische Identität des Clients
- Order – Anforderung eines oder mehrerer Zertifikate
- Authorization – Nachweis der Kontrolle für jede Domain
- Challenge – konkrete Prüfaufgabe (HTTP-01, DNS-01, TLS-ALPN-01)
- Finalization – Übermittlung des CSR
- Certificate – Ausstellung des Zertifikats
Diese Struktur entspricht dem ACME-Standard (RFC 8555)
Domain-Validierung
Der Client erzeugt ein Schlüsselpaar und fordert Validierungsaufgaben an.
- Nach Bereitstellung der Challenge-Ressourcen prüft die Zertifizierungsstelle deren Erfüllung.
- Bei Erfolg gilt der Account Key als autorisiert.
Zertifikatausstellung und Widerruf
Zur Ausstellung wird eine Zertifikatsanforderung (CSR) übermittelt
- Nach erfolgreicher Prüfung wird ein Zertifikat zurückgegeben
- Widerrufe erfolgen über signierte Widerrufsanfragen
- Entsprechende Informationen werden über die üblichen Kanäle publiziert
Rate Limits
Let’s Encrypt setzt verschiedene Beschränkungen ein, um Missbrauch zu verhindern. Für einen stabilen Betrieb sollte die automatisierte Erneuerung auf die Staging-Umgebung getestet werden.
Limits:
- Begrenzte Anzahl neuer Zertifikate pro registrierter Domain pro Woche.
- Begrenzung fehlerhafter Validierungsversuche pro Stunde.
- Begrenzte Anzahl neuer Orders pro Account innerhalb kurzer Zeiträume.
Für Tests steht eine Staging-Umgebung mit deutlich höheren Limits zur Verfügung.
- Staging-Umgebung
Die Staging-Umgebung ist eine separate ACME-Testinfrastruktur mit hohen Limits und nicht vertrauenswürdigen Testzertifikaten. Sie dient zur sicheren Überprüfung von Validierung, Konfiguration und Automatisierung, ohne produktive Limits zu belasten.
- Aktivierung der Staging-Umgebung
Die Nutzung erfolgt über den Staging-ACME-Endpunkt oder entsprechende Client-Optionen:
- Certbot: --staging
- ACME-Endpoint:
https://acme-staging-v02.api.letsencrypt.org/directory
- Certbot-Erneuerungstest: certbot renew --dry-run
Beste Praxis
- Port 80 sollte für HTTP-01-Challenges und Weiterleitungen auf HTTPS offen bleiben.
- Das Schließen von Port 80 reduziert das Sicherheitsrisiko kaum.
- Falls Port 80 durch den Anbieter blockiert ist, können DNS-01 oder TLS-ALPN-01 eingesetzt werden.