Let's Encrypt: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 39: | Zeile 39: | ||
* Für den gesellschaftlichen Nutzen erhielt Let’s Encrypt mehrere Auszeichnungen, darunter den FSF Award 2019 | * Für den gesellschaftlichen Nutzen erhielt Let’s Encrypt mehrere Auszeichnungen, darunter den FSF Award 2019 | ||
== Überblick == | |||
[[Let's Encrypt|Let’s Encrypt]] ermöglicht die automatisierte Ausstellung und Erneuerung von TLS-Zertifikaten über das ACME-Protokoll (RFC 8555) | [[Let's Encrypt|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 | * 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 | * 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 | Zur Nutzung von Let’s Encrypt muss eine ACME-Clientsoftware eingesetzt werden | ||
* Es stehen zahlreiche Clients von Drittanbietern zur Verfügung | * Es stehen zahlreiche Clients von Drittanbietern zur Verfügung | ||
:* Keine Überprüfung oder Zertifizierung dieser Clients durch Let’s Encrypt | :* Keine Überprüfung oder Zertifizierung dieser Clients durch Let’s Encrypt | ||
* Browserbasierte Clients werden nicht berücksichtigt, da sie manuelle Erneuerungen fördern | * Browserbasierte Clients werden nicht berücksichtigt, da sie manuelle Erneuerungen fördern | ||
=== Certbot === | |||
Für die meisten Szenarien wird Certbot empfohlen | Für die meisten Szenarien wird Certbot empfohlen | ||
* Unterstützt automatisiertes Ausstellen, Installieren und Erneuern von Zertifikaten | * Unterstützt automatisiertes Ausstellen, Installieren und Erneuern von Zertifikaten | ||
* Bietet Auto-Konfiguration sowie Expertenmodus | * Bietet Auto-Konfiguration sowie Expertenmodus | ||
* Umfangreiche Dokumentation und breite Betriebssystemunterstützung | * Umfangreiche Dokumentation und breite Betriebssystemunterstützung | ||
=== ACMEv1 / ACMEv2 === | |||
Alle unterstützten ACME-Clients verwenden '''ACMEv2 (RFC 8555)''' | Alle unterstützten ACME-Clients verwenden '''ACMEv2 (RFC 8555)''' | ||
* ACMEv1 wurde am 1 | * 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 | 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 | * Der Nachweis der Domainkontrolle erfolgt über einen ACME-Client oder über Integrationen beim Hosting-Provider | ||
* Entscheidend ist, '''ob Shell-Zugang verfügbar ist''' | * Entscheidend ist, '''ob Shell-Zugang verfügbar ist''' | ||
=== Mit Shell-Zugang === | |||
Für Shell-Umgebungen wird Certbot empfohlen | Für Shell-Umgebungen wird Certbot empfohlen | ||
* Unterstützt automatische Abläufe ohne Ausfallzeit | * Unterstützt automatische Abläufe ohne Ausfallzeit | ||
| Zeile 73: | Zeile 73: | ||
Für Tests kann die Staging-Umgebung genutzt werden, um Rate Limits nicht auszulösen | 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 | Optimal ist die Nutzung integrierter Let’s-Encrypt-Unterstützung des Hosting-Providers | ||
* Zertifikate werden automatisch angefordert und erneuert | * Zertifikate werden automatisch angefordert und erneuert | ||
Falls keine Integration vorhanden ist, kann ein Zertifikat manuell erzeugt und anschließend beim Provider hochgeladen werden | 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 | * 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 | Für die Domainvalidierung stehen mehrere Verfahren zur Verfügung | ||
* Auswahl und Einsatz hängen von Infrastruktur, DNS-Zugriff und Port-Verfügbarkeit ab | |||
{| class="wikitable options big" | {| class="wikitable options big" | ||
| Zeile 91: | Zeile 93: | ||
| HTTP-01 | | HTTP-01 | ||
| Port 80 | | Port 80 | ||
| | | | ||
* Einfach einzurichten | * Einfach einzurichten | ||
* Kompatibel mit den meisten Webservern | * Kompatibel mit den meisten Webservern | ||
* Automatisierbar | * Automatisierbar | ||
| | | | ||
* Erfordert offenen Port 80 | * Erfordert offenen Port 80 | ||
* Probleme hinter CDN/Reverse-Proxy möglich | * Probleme hinter CDN/Reverse-Proxy möglich | ||
| Zeile 102: | Zeile 104: | ||
| DNS-01 | | DNS-01 | ||
| TXT-Record | | TXT-Record | ||
| | | | ||
* Ermöglicht Ausstellung von Wildcard-Zertifikaten | * Ermöglicht Ausstellung von Wildcard-Zertifikaten | ||
* Unabhängig von Ports oder Webserver | * Unabhängig von Ports oder Webserver | ||
* Sehr flexibel bei komplexen Infrastrukturen | * Sehr flexibel bei komplexen Infrastrukturen | ||
| | | | ||
* Erfordert DNS-API oder manuellen Eingriff | * Erfordert DNS-API oder manuellen Eingriff | ||
* DNS-Propagation kann Verzögerungen verursachen | * DNS-Propagation kann Verzögerungen verursachen | ||
| Zeile 112: | Zeile 114: | ||
| TLS-ALPN-01 | | TLS-ALPN-01 | ||
| Port 443 | | Port 443 | ||
| | | | ||
* Keine Abhängigkeit von Port 80 | * Keine Abhängigkeit von Port 80 | ||
* Funktioniert hinter bestimmten Proxies besser | * Funktioniert hinter bestimmten Proxies besser | ||
| | | | ||
* Benötigt direkte Kontrolle über TLS-Konfiguration | * Benötigt direkte Kontrolle über TLS-Konfiguration | ||
* Nicht überall unterstützt | * Nicht überall unterstützt | ||
|} | |} | ||
==== Architektur | == Funktionsweise von ACME == | ||
Der ACME-Ablauf folgt festen Objekten und Schritten | |||
=== Architektur === | |||
Der ACME-Ablauf folgt festen Objekten und Schritten | |||
* '''Account Key''' – kryptografische Identität des Clients | * '''Account Key''' – kryptografische Identität des Clients | ||
* '''Order''' – Anforderung eines oder mehrerer Zertifikate | * '''Order''' – Anforderung eines oder mehrerer Zertifikate | ||
* '''Authorization''' – Nachweis der Kontrolle für jede Domain | * '''Authorization''' – Nachweis der Kontrolle für jede Domain | ||
* '''Challenge''' – konkrete Prüfaufgabe (HTTP-01, DNS-01, TLS-ALPN-01) | * '''Challenge''' – konkrete Prüfaufgabe (HTTP-01, DNS-01, TLS-ALPN-01) | ||
* '''Finalization''' – Übermittlung des CSR | * '''Finalization''' – Übermittlung des CSR | ||
| Zeile 134: | Zeile 136: | ||
Diese Struktur entspricht dem ACME-Standard (RFC 8555) | Diese Struktur entspricht dem ACME-Standard (RFC 8555) | ||
=== Domain-Validierung === | |||
Der Client erzeugt ein Schlüsselpaar und fordert Validierungsaufgaben an | Der Client erzeugt ein Schlüsselpaar und fordert Validierungsaufgaben an | ||
* Nach Bereitstellung der Challenge-Ressourcen prüft die Zertifizierungsstelle deren Erfüllung | * Nach Bereitstellung der Challenge-Ressourcen prüft die Zertifizierungsstelle deren Erfüllung | ||
* Bei Erfolg gilt der Account Key als autorisiert | * Bei Erfolg gilt der Account Key als autorisiert | ||
=== Zertifikatausstellung und Widerruf === | |||
Zur Ausstellung wird eine Zertifikatsanforderung (CSR) übermittelt | Zur Ausstellung wird eine Zertifikatsanforderung (CSR) übermittelt | ||
* Nach erfolgreicher Prüfung wird ein Zertifikat zurückgegeben | * Nach erfolgreicher Prüfung wird ein Zertifikat zurückgegeben | ||
| Zeile 145: | Zeile 147: | ||
* Entsprechende Informationen werden über die üblichen Kanäle publiziert | * Entsprechende Informationen werden über die üblichen Kanäle publiziert | ||
== Rate Limits == | |||
Let’s Encrypt setzt verschiedene Beschränkungen ein, um Missbrauch zu verhindern | 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 | Limits | ||
* Begrenzte Anzahl neuer Zertifikate pro registrierter Domain pro Woche | * Begrenzte Anzahl neuer Zertifikate pro registrierter Domain pro Woche | ||
* Begrenzung fehlerhafter Validierungsversuche pro Stunde | * Begrenzung fehlerhafter Validierungsversuche pro Stunde | ||
* Begrenzte Anzahl neuer Orders pro Account innerhalb kurzer Zeiträume | * 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 | Für Tests steht eine Staging-Umgebung mit deutlich höheren Limits zur Verfügung | ||
; Staging-Umgebung | ; Staging-Umgebung | ||
Die Staging-Umgebung ist eine separate ACME-Testinfrastruktur mit hohen Limits und nicht vertrauenswürdigen Testzertifikaten | 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 | ; Aktivierung der Staging-Umgebung | ||
Die Nutzung erfolgt über den Staging-ACME-Endpunkt oder entsprechende Client-Optionen | Die Nutzung erfolgt über den Staging-ACME-Endpunkt oder entsprechende Client-Optionen | ||
* Certbot: ''--staging'' | * Certbot: ''--staging'' | ||
* ACME-Endpoint | * ACME-Endpoint | ||
<syntaxhighlight lang="ini" copy line> | <syntaxhighlight lang="ini" copy line> | ||
https://acme-staging-v02.api.letsencrypt.org/directory | https://acme-staging-v02.api.letsencrypt.org/directory | ||
| Zeile 168: | Zeile 172: | ||
* Certbot-Erneuerungstest: ''certbot renew --dry-run'' | * Certbot-Erneuerungstest: ''certbot renew --dry-run'' | ||
== Beste Praxis == | |||
* Port 80 sollte für '''HTTP-01'''-Challenges und Weiterleitungen auf HTTPS offen bleiben | * Port 80 sollte für '''HTTP-01'''-Challenges und Weiterleitungen auf HTTPS offen bleiben | ||
* Das Schließen von Port 80 reduziert das Sicherheitsrisiko kaum | * 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 | * Falls Port 80 durch den Anbieter blockiert ist, können '''DNS-01''' oder '''TLS-ALPN-01''' eingesetzt werden | ||
Version vom 22. Dezember 2025, 20:12 Uhr
Let's Encrypt ist eine kostenlose, automatisierte und offene Zertifizierungsstelle für X.509-basierte TLS-Zertifikate. Der Dienst wird von der gemeinnützigen Internet Security Research Group (ISRG) betrieben
Eigenschaften
- Zertifikatsarten
- Ausstellung von Domain-Validation-(DV)-Zertifikaten für DNS-Namen (Einzelnamen, Subject-Alternative-Name-Zertifikate und Wildcard-Zertifikate)
- OV- und EV-Zertifikate werden bewusst nicht angeboten, da deren Antragsprozesse nicht vollständig automatisierbar sind
- Gültigkeit
- Standardgültigkeit der Zertifikate beträgt 90 Tage
- Für den produktiven Betrieb ist eine automatisierte Erneuerung vorgesehen (z. B. über ACME-Clients. Details in Nutzung)
- Kosten
- Ausstellung und Nutzung der Zertifikate sind kostenfrei.
- Es wird weitgehend auf freie Software und offene Standards gesetzt
- Transparenz
- Ausgestellte Zertifikate werden in öffentlichen Logsystemen (z. B. Certificate Transparency) protokolliert
- Die Betreibenden veröffentlichen regelmäßig Transparenz- und Sicherheitsberichte
Organisation
Let’s Encrypt ist ein von der Internet Security Research Group angebotener Dienst
- Finanzierung erfolgt überwiegend durch Sponsoring großer Unternehmen aus Browser-, CDN- und Infrastrukturbereich sowie durch Spenden
- Zu den wichtigen Unterstützenden gehören unter anderem die Electronic Frontier Foundation (EFF), die Mozilla Foundation, Akamai, Google Chrome und Cisco Systems
Vertrauensmodell und Zertifikatskette
Let’s Encrypt betreibt eigene Root-Zertifikate (z. B. ISRG Root X1) und stellt davon abgeleitete Zwischenzertifikate bereit.
- Zur Sicherstellung der Kompatibilität mit älteren Clients wurden zeitweise zusätzlich von IdenTrust signierte Zwischenzertifikate eingesetzt
- Die aktuell verwendeten Root- und Intermediate-Zertifikate sowie Details zur Schlüsselinfrastruktur sind in Let's Encrypt/Technik beschrieben
Technik
Let’s Encrypt verwendet das ACME-Protokoll (Automatic Certificate Management Environment) zur automatisierten Ausstellung und Erneuerung von Zertifikaten.
- ACME-Clients führen die Authentifizierung der Domain und die Installation der Zertifikate auf dem Zielsystem aus
- Unterstützte Validierungsmethoden (z. B. HTTP-01, DNS-01, TLS-ALPN-01) sowie konkrete Anwendungsbeispiele werden in Let's Encrypt/Anwendungen beschrieben
- Weitere technische Details zur Implementierung, zur CA-Software und zur Infrastruktur sind in Let's Encrypt/Technik zusammengefasst
Bedeutung
Let’s Encrypt hat die Verbreitung von HTTPS im World Wide Web wesentlich beschleunigt und die Hürden für den Einsatz von Transportverschlüsselung deutlich gesenkt
- Das Projekt unterstützt Bestrebungen großer Webbrowser-Projekte, unverschlüsseltes HTTP als unsicher zu kennzeichnen
- Für den gesellschaftlichen Nutzen erhielt Let’s Encrypt mehrere Auszeichnungen, darunter den FSF Award 2019
Ü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
Anhang
Siehe auch
Weblinks