Zum Inhalt springen

Let's Encrypt/Anwendungen: Unterschied zwischen den Versionen

Aus Foxwiki
DanielZorin (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
DanielZorin (Diskussion | Beiträge)
Der Seiteninhalt wurde durch einen anderen Text ersetzt: „ Kategorie:Let's Encrypt
Markierung: Ersetzt
 
Zeile 1: Zeile 1:
== Überblick ==
[[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
* 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
{| class="wikitable options big"
! Methode
! Port
! Vorteile
! Nachteile
|-
| HTTP-01
| Port 80
|
* Einfach einzurichten
* Kompatibel mit den meisten Webservern
* Automatisierbar
|
* Erfordert offenen Port 80
* Probleme hinter CDN/Reverse-Proxy möglich
* Nicht nutzbar für Wildcard-Zertifikate
|-
| DNS-01
| TXT-Record
|
* Ermöglicht Ausstellung von Wildcard-Zertifikaten
* Unabhängig von Ports oder Webserver
* Sehr flexibel bei komplexen Infrastrukturen
|
* Erfordert DNS-API oder manuellen Eingriff
* DNS-Propagation kann Verzögerungen verursachen
|-
| TLS-ALPN-01
| Port 443
|
* Keine Abhängigkeit von Port 80
* Funktioniert hinter bestimmten Proxies besser
|
* Benötigt direkte Kontrolle über TLS-Konfiguration
* Nicht überall unterstützt
|}
 
== 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:
<syntaxhighlight lang="ini" copy line>
https://acme-staging-v02.api.letsencrypt.org/directory
</syntaxhighlight>
* 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.


[[Kategorie:Let's Encrypt]]
[[Kategorie:Let's Encrypt]]

Aktuelle Version vom 18. Dezember 2025, 09:21 Uhr