Zum Inhalt springen

Let's Encrypt: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(125 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Let’s Encrypt''' ist eine [[Zertifizierungsstelle]], die kostenlose [[X.509]]-[[Digitales Zertifikat|Zertifikate]] für [[Transport Layer Security]] (TLS) anbietet
'''Let's Encrypt''' - [[Zertifizierungsstelle]] für [[X.509]]-basierte [[Transport Layer Security|TLS]]-[[Digitales Zertifikat|Zertifikate]]


= Beschreibung =
== Beschreibung ==
* Ende 2015 in Betrieb gegangen ist und  
; Automatisierte Ausstellung und Erneuerung von TLS-Zertifikaten
* kostenlose [[X.509]]-[[Digitales Zertifikat|Zertifikate]] für [[Transport Layer Security]] (TLS) anbietet
ACME-Protokoll ([[RFC/8555]])
* Die Zertifikate haben eine Gültigkeit von jeweils 90 Tagen und können manuell oder automatisch erneuert werden.
* ACME-Client weist die Kontrolle über eine Domain nach und ruft ein Zertifikat ab
* Dabei ersetzt ein automatisierter Prozess die bisher gängigen komplexen händischen Vorgänge bei der Erstellung, Validierung, Signierung, Einrichtung und Erneuerung von Zertifikaten für verschlüsselte Websites.
* Zertifikate besitzen eine maximale Gültigkeit von 90 Tagen, daher sollte eine automatische Erneuerung konfiguriert werden


== Überblick ==
; [[Zertifizierungsstelle]] für [[X.509]]-basierte [[Transport Layer Security|TLS]]-[[Digitales Zertifikat|Zertifikate]]
Ziel des Projekts ist es, verschlüsselte Verbindungen im [[World Wide Web]] zum Normalfall zu machen.  
Internet Security Research Group (ISRG)
* Indem unter anderem Zahlung, [[Webserver]]konfiguration, Validierungs-E-Mails und die Sorge um abgelaufene Zertifikate überflüssig werden, sollen Aufwand für Einrichtung und Pflege von TLS-Verschlüsselung deutlich gesenkt werden.
* offen
* gemeinnützig
* automatisiert
* kostenlos


Bei aktuellen Bestrebungen von großen [[Webbrowser]]-Projekten, unverschlüsseltes [[Hypertext Transfer Protocol|HTTP]] als überholt zu erklären und zukünftig davor zu warnen oder die Unterstützung einzuschränken, wird unter anderem auf die Verfügbarkeit von Let’s Encrypt gesetzt.
; 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 [[Hypertext Transfer Protocol|HTTP]] als unsicher zu kennzeichnen
* Für den gesellschaftlichen Nutzen erhielt Let’s Encrypt mehrere Auszeichnungen, darunter den FSF Award 2019


Um sowohl die eigene Vertrauenswürdigkeit zu erhöhen, als auch gegen Angriffe und Manipulationsversuche zu schützen, soll auf größtmögliche Transparenz gesetzt werden.
=== Zertifikate ===
* Dazu werden zum Beispiel regelmäßig Transparenzberichte veröffentlicht, alle Ausstellungstransaktionen öffentlich protokolliert (u. a.
; Domain-Validation
* mit [[Certificate Transparency]]) und möglichst viel auf [[Offener Standard|offene Standards]] und [[freie Software]] gesetzt.
Domain-Validation-(DV)-Zertifikate
* DNS-Namen
* Einzelnamen
* Subject-Alternative-Name-Zertifikate
* Wildcard-Zertifikate


Das Projekt erhielt den [[FSF Award]] 2019.
; OV- und EV-Zertifikate
Werden nicht angeboten
* Antragsprozesse nicht vollständig automatisierbar


Es werden TLS-Zertifikate mit [[Domain Validation Certificate|Domain Validation]] (DV) ausgestellt.
; Gültigkeit
* Bewusst nicht angeboten werden TLS-Zertifikate mit einer Prüfung auf [[Organization Validation Certificate|Organization Validation]] (OV) und [[Extended Validation Certificate|Extended Validation]] (EV), da deren Antragsprozess per Definition nicht vollautomatisiert möglich ist und der Zweck von Let’s Encrypt ist, eine niederschwellige unmittelbare Ausstellung von TLS-Zertifikaten zu ermöglichen.
Standardgültigkeit der Zertifikate beträgt 90 Tage
== Beteiligte ==
* Für den produktiven Betrieb ist eine automatisierte Erneuerung vorgesehen (z. B. über ACME-Clients
Let’s Encrypt ist ein von der gemeinnützigen [[Internet Security Research Group]] (ISRG) angebotener Dienst.  
* Hauptsponsoren sind unter anderem die [[Electronic Frontier Foundation]] (EFF), die [[Mozilla Foundation]], [[Akamai]], [[Google|Google Chrome]] und [[Cisco Systems]].  
* Weitere Beteiligte sind die Zertifizierungsstelle [[IdenTrust]], die [[University of Michigan]] (U-M), die [[Stanford Law School]], die [[Linux Foundation]]


= Installation =
; Kosten
= Syntax =
* Ausstellung und Nutzung der Zertifikate sind kostenfrei
== Parameter ==
* Es wird weitgehend auf [[freie Software]] und offene Standards gesetzt
== Optionen ==
== Umgebungsvariablen ==
== Exit-Status ==


= Konfiguration =
; Transparenz
== Dateien ==
* Ausgestellte Zertifikate werden in öffentlichen Logsystemen (z. B. Certificate Transparency) protokolliert
* Die Betreibenden veröffentlichen regelmäßig Transparenz- und Sicherheitsberichte


= Anwendungen =
=== Organisation ===
= Sicherheit =
Let’s Encrypt ist ein von der Internet Security Research Group angebotener Dienst
= Dokumentation =
* Finanzierung erfolgt überwiegend durch Sponsoring großer Unternehmen aus Browser-, CDN- und Infrastrukturbereich sowie durch Spenden
== RFC ==
* Zu den wichtigen Unterstützenden gehören unter anderem die Electronic Frontier Foundation (EFF), die [[Mozilla|Mozilla Foundation]], Akamai, Google Chrome und [[Cisco Systems]]
== Man-Pages ==
== Info-Pages ==
== Siehe auch ==
* [[CAcert]]


= Links =
=== Vertrauensmodell und Zertifikatskette ===
== Projekt-Homepage ==
Let’s Encrypt  
== Weblinks ==
* betreibt eigene Root-Zertifikate
# [https://letsencrypt.org/ Offizielle Website]
** z. B. ''ISRG Root X1''
# [https://media.libreplanet.org/u/libreplanet/m/seth-schoen-lets-encrypt/ Seth Schoens Vorlesung bei Libre Planet 2015 zu Let’s Encrypt]
* stellt davon abgeleitete Zwischenzertifikate bereit
# [https://cryptologie.net/article/274 technische Einführung] in einem Blogeintrag von David Wong
 
== Einzelnachweise ==
<references />
 
= Testfragen =
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


; Kompatibilität mit älteren Clients
* 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


= TMP 1 =
=== Technik ===
== Technik ==
Let’s Encrypt verwendet das ACME-Protokoll (Automatic Certificate Management Environment) zur automatisierten Ausstellung und Erneuerung von Zertifikaten
Let’s Encrypt besitzt ein [[RSA-Kryptosystem|RSA]]-Stammzertifikat, das in einem [[Hardware-Sicherheitsmodul]] verwahrt und nicht direkt verwendet wird.
* ACME-Clients führen die Authentifizierung der Domain und die Installation der Zertifikate auf dem Zielsystem aus
* Es soll im dritten Quartal 2019 durch ein [[Elliptic Curve DSA|ECDSA]]-Stammzertifikat ergänzt werden.
* Unterstützte Validierungsmethoden (z.&nbsp;B.&nbsp;''HTTP-01'', ''DNS-01'', ''TLS-ALPN-01'') sowie konkrete Anwendungsbeispiele werden in [[Let's Encrypt/Anwendungen]] beschrieben
* Damit werden mehrere Zwischenzertifikate signiert, welche durch die Zertifizierungsstelle [[IdenTrust]] gegengezeichnet werden. Eines davon dient dann zur Signierung der ausgestellten Zertifikate, die anderen als Ersatz bei Problemen mit dem ersten.
* Weitere technische Details zur Implementierung, zur CA-Software und zur Infrastruktur sind in [[Let's Encrypt/Technik]] zusammengefasst
* Durch die IdenTrust-Signatur können die ausgestellten Zertifikate in gebräuchlichen Webbrowsern über die vorinstallierten Stammzertifizierungsstellen geprüft werden.
* So werden Let’s-Encrypt-Zertifikate auf Client-Seite von Anfang an in der Regel ohne weiteres akzeptiert. Seit Ende Juli 2018 ist das Stammzertifikat von Let's Encrypt in allen wichtigen Root-Programmen vertreten.


=== Protokoll ===
== ACME ==
Zur Automatisierung der Zertifizierung nutzt Let’s Encrypt das [[Challenge-Response-Authentifizierung|Challenge-Response-Verfahren]] [[Automatic Certificate Management Environment]] (ACME).
; Automatic Certificate Management Environment
* Dabei werden verschiedene Anfragen entweder an Unterseiten am Webserver oder direkt [[Domain Name System|DNS]]-Anfragen an die zu zertifizierende Domain gestellt.
Funktionsweise von ACME
* In beiden Fällen wird ein vorher von Let’s Encrypt erstellter Token entweder auf einer speziellen Unterseite am Web-Server oder als [[TXT Resource Record]] im DNS der betreffenden Domain öffentlich abgelegt und von Let’s-Encrypt-Servern in Folge abgefragt.
* Anhand der Antwort mit den Token wird sichergestellt, dass der Antragsteller den Web-Server oder direkt den [[Domain Name System#Nameserver|Nameserver]] und die damit verknüpfte Domain kontrolliert ({{enS|domain validation}}).


Auf dem Server-System müssen diese Anfragen korrekt beantwortet werden.
=== Architektur ===
* Dazu bietet das Protokoll verschiedene Möglichkeiten.
; ACME-Ablauf
* Bei einer  wird dazu von der ACME-Client-Software ein besonders konfigurierter TLS-Server eingerichtet, der mittels [[Server Name Indication]] auf besondere Anfragen der Zertifizierungsstelle antwortet (Domain-Validierung mittels Server Name Indication, DVSNI).
Objekte und Schritte
* Dieses Verfahren wird allerdings nur für eine erste Zertifikatsausstellung für eine Domain akzeptiert (sogenanntes „trust on first use“, TOFU – Vertrauen bei erster Benutzung).
{| class="wikitable options big"
* Danach kommt die alternative Validierung über ein bestehendes Zertifikat zum Einsatz.
|-
* Bei Verlust der Kontrolle über ein bereits ausgestelltes Zertifikat muss daher ein Zertifikat von einem Drittanbieter erworben werden, um wieder ein Let’s-Encrypt-Zertifikat zu erhalten.
! Schritt !! Beschreibung
|-
| 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
|}


Die Validierungsverfahren werden mehrmals über verschiedene Netzwerkpfade durchgeführt.
Diese Struktur entspricht dem ACME-Standard ([[RFC/8555]])
* Zur Erschwerung von [[Cache Poisoning|DNS-Spoofing]] ist die Prüfung von DNS-Einträgen von mehreren geographisch verteilten Standpunkten aus vorgesehen.


Bei ACME-Interaktionen werden [[JavaScript Object Notation|JSON]]-Dokumente über HTTPS-Verbindungen ausgetauscht. Das Protokoll wurde im März 2019 von der [[Internet Engineering Task Force]] als [[Request for Comments]] im Status eines vorgeschlagenen [[Internetstandard]]s veröffentlicht.
=== 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


=== Server-Implementierung ===
=== Zertifikatausstellung und Widerruf ===
[[Datei:Letsencrypt screenshot 2 domain choice.png|mini|Domainauswahldialog]]
Zur Ausstellung wird eine Zertifikatsanforderung (CSR) übermittelt
Die Zertifizierungsstelle besteht im Wesentlichen aus einer in [[Go (Programmiersprache)|Go]] geschriebenen Software namens Boulder, die die Server-Seite des ACME-Protokolls implementiert.
* Nach erfolgreicher Prüfung wird ein Zertifikat zurückgegeben
* Sie wird als [[freie Software]] auch in [[Quelltext]]form unter den Bedingungen von Version 2 der [[Mozilla Public License]] (MPL) verbreitet. Sie stellt eine [[Representational State Transfer|REST]]-[[Programmierschnittstelle]] zur Verfügung, auf die TLS-verschlüsselt zugegriffen werden kann.
* Widerrufe erfolgen über signierte Widerrufsanfragen
* Entsprechende Informationen werden über die üblichen Kanäle publiziert


Für verschiedene Linux-Distributionen existieren Pakete, welche die Cert-Updates automatisch durchführen, so für [[Debian]] das package ''Certbot''.
=== 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


=== Clients ===
{| class="wikitable options big gnu"
Durch den offenen Standard ACME sind mittlerweile über 40 unterschiedliche Clients entwickelt worden.
! 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
|}


Im Rahmen des Projekts wurde eine [[Apache-Lizenz|Apache-lizenzierte]] Nach der Installation und Zustimmung zu einem Benutzervertrag genügt die Ausführung des reinen Befehls, um ein gültiges Zertifikat installiert zu bekommen.
=== Rate Limits ===
* Es können aber auch zusätzliche Funktionen wie [[OCSP stapling]] oder [[HTTP Strict Transport Security]] (HSTS) eingestellt werden. Die automatische Einrichtung funktioniert zunächst allerdings nur mit [[Apache HTTP Server|Apache]] und [[nginx]].
Let’s Encrypt setzt v=erschiedene Beschränkungen ein, um Missbrauch zu verhindern
* Der Client kann aus den Paketquellen diverser Linux-Distributionen installiert werden, beispielsweise aus den [[Debian Package Manager|Debian-Paketquellen]].
* Für einen stabilen Betrieb sollte die automatisierte Erneuerung auf die Staging-Umgebung getestet werden


Daneben gibt es mit ''acmetool'' einen in [[Go (Programmiersprache)|Go]] geschriebenen mit vor-kompilierten, [[Statisches Binden|statischen]] [[Programmdatei]]en Client.
; Limits
* Die Seite ''Get HTTPS for free!'' ist ein [[HTTP/2]]-kompatibler [[Webserver]], der vollautomatisch ein Zertifikat erzeugt und Inhalte per HTTPS ausliefert.
* Begrenzte Anzahl neuer Zertifikate pro registrierter Domain pro Woche
* Ein weiterer weit verbreiteter Client ist acme-tiny, ein in Python geschriebener Client, er ist weniger als 200 Zeilen lang und soll somit von jedem Nutzer vor der Verwendung selbst gelesen werden.
* Begrenzung fehlerhafter Validierungsversuche pro Stunde
* Begrenzte Anzahl neuer Orders pro Account innerhalb kurzer Zeiträume


= TMP 2 =
Für Tests steht eine Staging-Umgebung mit deutlich höheren Limits zur Verfügung
= ACME Client Implementierungen =
Let’s Encrypt verwendet das ACME-Protokoll, um zu überprüfen, ob Sie einen bestimmten Domainnamen steuern und um Ihnen ein Zertifikat auszustellen.
* Um ein Let’s Encrypt-Zertifikat zu erhalten, müssen Sie eine ACME-Clientsoftware auswählen.


Die folgenden ACME-Clients werden von Dritten angeboten.
; Staging-Umgebung
* Let’s Encrypt kontrolliert oder überprüft keine Clients von Drittanbietern und kann keine Garantie für deren Sicherheit oder Zuverlässigkeit abgeben.
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


Einige ACME-Clients im Browser sind zwar verfügbar, werden hier jedoch nicht aufgeführt, da sie einen manuellen Erneuerungsworkflow fördern, der zu einer schlechten Benutzererfahrung führt und das Risiko von versäumten Erneuerungen erhöht.
; Aktivierung der Staging-Umgebung
Die Nutzung erfolgt über den Staging-ACME-Endpunkt oder entsprechende Client-Optionen


= Empfohlen: Certbot =
* Certbot: ''--staging''
Wir empfehlen, dass die meisten Leute mit dem [https://certbot.eff.org/ Certbot] Client beginnen.
* ACME-Endpoint
* Er kann einfach ein Zertifikat für Sie erhalten oder auch bei der Installation geholfen werden, je nachdem, was Sie bevorzugen.
<syntaxhighlight lang="ini" copy line>
* Es ist einfach zu bedienen, funktioniert mit vielen Betriebssystemen und ist gut dokumentiert.
https://acme-staging-v02.api.letsencrypt.org/directory
</syntaxhighlight>
* Certbot-Erneuerungstest: ''certbot renew --dry-run''


Wenn certbot nicht Ihren Anforderungen entspricht oder Sie einfach etwas anderes ausprobieren möchten, können Sie unten aus einer Vielzahl von Clients auswählen, sortiert nach der Sprache oder Umgebung, in der sie ausgeführt werden.
=== 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


= ACMEv1 und ACMEv2 =
Let’s Encrypt unterstützt die ACMEv2 API, welche kompatibel ist mit dem [https://tools.ietf.org/html/rfc8555 finalisierten ACME Standard].
* Wir [https://community.letsencrypt.org/t/end-of-life-plan-for-acmev1/88430/ bauen langsam die ältere ACMEv1 API] in 2020 und 2021 ab.
* Wenn Sie bereits einen dieser Clients verwenden, stellen Sie sicher, dass Sie auf die neueste Version aktualisieren.
* Wenn der von Ihnen verwendete Client unten nicht aufgeführt ist, wenden Sie sich an die Projektbetreuer, oder wechseln Sie zu einem anderen Client.


https://letsencrypt.org/de/docs/client-options/
<noinclude>


= Erste Schritte =
== ACME-Clients ==
Um HTTPS auf Ihrer Website zu aktivieren, brauchen Sie ein Zertifikat (eine Datei) von einer Zertifizierungsstelle (CA).
; ACME-Client-Implementierungen
* Let’s Encrypt ist eine CA.
Zur Nutzung von Let’s Encrypt muss eine ACME-Clientsoftware eingesetzt werden
* Um für Ihre Domain ein Zertifikat von Let’s Encrypt zu bekommen, müssen Sie nachweisen, dass Sie die Kontrolle über diese Domain haben.
* Es stehen zahlreiche Clients von Drittanbietern zur Verfügung
* Mit Let’s Encrypt benutzen Sie Software, die das [https://tools.ietf.org/html/rfc8555 ACME-Protokoll] benutzt, welches typischerweise auf Ihrem Web-Host läuft.
:* Keine Überprüfung oder Zertifizierung dieser Clients durch Let’s Encrypt
* Browserbasierte Clients werden nicht berücksichtigt, da sie manuelle Erneuerungen fördern


Um herauszufinden, welche Methode für Sie die richtige ist, ist es wichtig herauszufinden, ob Sie zu Ihrer Webseite [https://en.wikipedia.org/wiki/Shell_account Shell-Zugang] haben (auch bekannt als SSH-Zugang).
=== Certbot ===
* Wenn Sie Ihre Website durch eine Kontrollschnittstelle verwalten wie [https://cpanel.net/ cPanel], [https://www.plesk.com/ Plesk] oder [https://wordpress.org/ WordPress], dann haben Sie wahrscheinlich keinen Shell-Zugang.
Für die meisten Szenarien wird Certbot empfohlen
* Sicherheitshalber können Sie Ihren Dienstanbieter fragen.
* Unterstützt automatisiertes Ausstellen, Installieren und Erneuern von Zertifikaten
* Bietet Auto-Konfiguration sowie Expertenmodus
* Umfangreiche Dokumentation und breite Betriebssystemunterstützung


= Mit Shell-Zugang =
=== ACME Versionen ===
Wir empfehlen den meisten Leuten mit Shell-Zugang die Benutzung des ACME [https://certbot.eff.org/ Certbots].
; ACMEv1/ACMEv2
* Er kann Zertifikate automatisch ohne Ausfallzeit erstellen und installieren.
Alle unterstützten ACME-Clients verwenden '''ACMEv2 (RFC 8555)'''
* Er hat auch einen Expertenmodus für Leute, die keine Autokonfiguration möchten.
* ACMEv1 wurde am 1.&nbsp;Juni 2021 vollständig abgeschaltet
* Er ist einfach zu benutzen, funktioniert auf vielen Betriebssystemen und hat eine großartige Dokumentation. [https://certbot.eff.org/ Besuchen Sie die Seite von Certbot], um passende Anleitungen für Ihr Betriebssystem und ihren Server zu erhalten.


Wenn [https://certbot.eff.org/ Certbot] nicht ihren Anforderungen entspricht, oder Sie einen anderen Client verwenden möchten, gibt es [https://letsencrypt.org/de/docs/client-options/ viele weitere ACME-Clients zur Auswahl].
=== Erste Schritte ===
* Sobald Sie einen ACME-Client gewählt haben, können Sie in die dazugehörige Dokumentation verwenden.
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'''


Wenn Sie mit unterschiedlichen ACME-Clients experimentieren, benutzen Sie [https://letsencrypt.org/de/docs/staging-environment/ die Staging-Umgebung], um zu verhindern, dass die [https://letsencrypt.org/de/docs/rate-limits/ Anfragelimits] überschritten werden.
==== 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


= Ohne Shell-Zugriff =
Für Tests kann die Staging-Umgebung genutzt werden, um Rate Limits nicht auszulösen
Der beste Weg, Let’s Encrypt ohne Shell-Zugriff zu benutzen, ist der eingebaute Support von Ihrem Hosting-Provider.
* Wenn Ihr Hosting-Provider Let’s Encrypt Unterstützung anbietet, dann kann er in Ihrem Namen freie Zertifikate anfordern, installieren und automatisch aktuell halten.
* Bei einigen Hosting-Providern müssen Sie diese Unterstützung einschalten.
* Andere Provider machen dies automatisch für ihre Kunden.


[https://community.letsencrypt.org/t/web-hosting-who-support-lets-encrypt/6920 Überprüfen Sie unsere Liste von Hosting-Providern], um zu sehen, ob Ihrer mit dabei ist.
==== Ohne Shell-Zugriff ====
* Wenn das so ist, folgen Sie der Dokumentation, um Ihr Let’s Encrypt-Zertifikat einzurichten.
Optimal ist die Nutzung integrierter Let’s-Encrypt-Unterstützung des Hosting-Providers
* Zertifikate werden automatisch angefordert und erneuert


Wenn Ihr Hosting Provider-Let’s Encrypt nicht unterstützt, können Sie ihn kontaktieren und Unterstützung anfragen.
Falls keine Integration vorhanden ist, kann ein Zertifikat manuell erzeugt und anschließend beim Provider hochgeladen werden
* Wir tun unser Bestes, um Let’s Encrypt-Unterstützung zu ermöglichen und Provider sind oft sehr froh, wenn dieser Vorschlag von ihren Kunden kommt!
* Dieser Ansatz ist aufwendig und muss regelmäßig wiederholt werden
* Gilt als Notlösung


Wenn Ihr Hosting-Provider Let’s Encrypt nicht integrieren möchte, aber das Hochladen von eigenen Zertifikaten unterstützt, können Sie Certbot auf Ihrem eigenen Rechner installieren und im [https://certbot.eff.org/docs/using.html#manual manuellen Modus] benutzen.
* Im manuellen Modus laden Sie eine spezielle Datei auf Ihre Website, um zu beweisen, dass Sie die Kontrolle über diese haben.
* Certbot wird dann ein Zertifikat abrufen, welches Sie dann zu Ihrem Hosting-Provider hochladen können.
* Wir empfehlen diese Methode nicht, denn sie kostet viel Zeit und Sie müssen sie mehrmals im Jahr wiederholen, da Ihr Zertifikat abläuft.
* Für viele Benutzer ist es besser, Let’s Encrypt-Unterstützung von ihrem Hosting-Provider anzufordern oder zu einem anderen Anbieter zu wechseln.


= Hilfe erhalten =
== Anhang ==
Wenn Sie Fragen haben zur Auswahl eines ACME-Clients, zur Benutzung eines besonderen Clients oder eine andere Frage bezüglich Let’s Encrypt haben, können Sie gerne unser [https://community.letsencrypt.org/ hilfreiches Community Forum] besuchen.
=== Siehe auch ===
<div style="column-count:2">
<categorytree hideroot=on mode="pages">Let's Encrypt</categorytree>
</div>
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
----
* [[RFC/8555]]
<!--
=== Dokumentation ===


= Wie es funktioniert =
Platz für interne Hinweise oder zusätzliche Dokumentation
Das Ziel von Let’s&nbsp;Encrypt und des [https://tools.ietf.org/html/rfc8555 ACME-Protokolls] besteht darin, die Einrichtung eines HTTPS-Servers zu ermöglichen, der automatisch ein vertrauenswürdiges Browserzertifikat ohne menschliches Eingreifen erhält.
-->
* Dies wird durch Ausführen eines Zertifikatsverwaltungsagenten auf dem Webserver erreicht.


Um zu verstehen, wie die Technologie funktioniert, gehen wir die Einrichtung von <tt>https://example.com/</tt> mit einem Zertifikatsverwaltungsagenten durch, der Let’s&nbsp;Encrypt unterstützt.
== Weblinks ==
 
# [https://letsencrypt.org/ Offizielle Website von Let’s Encrypt]
Dieser Prozess umfasst zwei Schritte.
# [https://cryptologie.net/article/274 Technische Einführung in Let’s Encrypt]
* Zunächst weist der Agent der Zertifizierungsstelle nach, dass der Webserver eine Domain kontrolliert.
* Anschließend kann der Agent Zertifikate für diese Domain anfordern, erneuern und widerrufen.
 
== Domain-Validierung ==
Let’s&nbsp;Encrypt identifiziert den Serveradministrator anhand des öffentlichen Schlüssels.
* Wenn die Agentensoftware zum ersten Mal mit Let’s&nbsp;Encrypt interagiert, generiert sie ein neues Schlüsselpaar und weist der Let’s&nbsp;Encrypt-Zertifizierungsstelle nach, dass der Server eine oder mehrere Domain kontrolliert.
* Dies ist vergleichbar mit dem traditionellen CA-Verfahren, bei dem ein Konto erstellt und diesem Konto Domains hinzugefügt werden.
 
Um den Prozess zu starten, fragt der Agent die Let’s Encrypt-Zertifizierungsstelle, was zu tun ist, um zu beweisen, dass sie <tt>example.com</tt> kontrolliert.
* Die Let’s Encrypt-Zertifizierungsstelle prüft den angeforderten Domainnamen und gibt eine oder mehrere Herausforderungen heraus.
* Es gibt verschiedene Möglichkeiten, mit denen der Agent die Kontrolle über die Domain nachweisen kann.
* Beispielsweise kann die Zertifizierungsstelle dem Agenten die Wahl zwischen folgenden Optionen geben:* Bereitstellung eines DNS-Eintrags unter <tt>example.com</tt> oder
* Bereitstellung einer HTTP-Ressource unter einer bekannten URI unter <tt>http://example.com/</tt>
 
Neben den Herausforderungen bietet die Let’s Encrypt-Zertifizierungsstelle auch eine Nonce, die der Agent mit seinem privaten Schlüsselpaar signieren muss, um zu beweisen, dass er das Schlüsselpaar kontrolliert.
 
[[Image:Bild1.png|top|alt="Aufforderung zur Validierung von example.com stellen"]]
 
Die Agentensoftware erfüllt eine der gestellten Herausforderungen.
* Nehmen wir an, sie ist in der Lage, die zweite Aufgabe oben auszuführen: Sie erstellt eine Datei in einem angegebenen Pfad auf der Website <tt>http://example.com</tt>.
* Der Agent signiert die bereitgestellte Nonce außerdem mit seinem privaten Schlüssel.
* Nachdem der Agent diese Schritte ausgeführt hat, benachrichtigt er die Zertifizierungsstelle, dass sie zur Validierung bereit ist.
 
Dann ist es die Aufgabe der Zertifizierungsstelle, zu überprüfen, ob die Aufforderungen erfüllt sind.
* Die Zertifizierungsstelle überprüft die Signatur auf der Nonce und versucht, die Datei vom Webserver herunterzuladen und sicherzustellen, dass sie den erwarteten Inhalt hat.
 
[[Image:Bild2.png|top|alt="Erfordert Autorisierung um für example.com zu agieren"]]
 
Wenn die Signatur über die Nonce gültig ist und die Herausforderungen ausgecheckt werden, ist der durch den öffentlichen Schlüssel identifizierte Agent berechtigt, die Zertifikatsverwaltung für <tt>example.com</tt> durchzuführen.
* Wir nennen das Schlüsselpaar, dass der Agent ein “autorisiertes Schlüsselpaar” für <tt>example.com</tt> verwendet hat.
 
== Zertifikatausstellung und Widerruf ==
Wenn der Agent über ein autorisiertes Schlüsselpaar verfügt, ist das Anfordern, Erneuern und Sperren von Zertifikaten ganz einfach: Senden Sie einfach Zertifikatsverwaltungsnachrichten und signieren Sie sie mit dem autorisierten Schlüsselpaar.
 
Um ein Zertifikat für die Domain zu erhalten, erstellt der Agent eine PKCS#10-Anforderung [https://tools.ietf.org/html/rfc2986 Zertifikatsignierungsanforderung], in der die Let’s&nbsp;Encrypt-Zertifizierungsstelle aufgefordert wird, ein Zertifikat für <tt>example.com</tt> mit einem angegebenen öffentlichen Schlüssel auszustellen.
* Wie üblich enthält der CSR eine Signatur des privaten Schlüssels, der dem öffentlichen Schlüssel in dem CSR entspricht.
* Der Agent signiert außerdem die gesamte CSR mit dem autorisierten Schlüssel für <tt>example.com</tt>, damit die Let’s&nbsp;Encrypt-Zertifizierungsstelle weiß, dass sie autorisiert ist.
 
Wenn die Let’s&nbsp;Encrypt-Zertifizierungsstelle die Anforderung erhält, werden beide Signaturen überprüft.
* Wenn alles gut aussieht, wird ein Zertifikat für <tt>example.com</tt> mit dem öffentlichen Schlüssel aus dem CSR ausgestellt und an den Agenten zurückgegeben.
 
[[Image:Bild3.png|top|alt="Anfordern eines Zertifikats für example.com"]]


Der Widerruf funktioniert auf ähnliche Weise.
[[Kategorie:Let's Encrypt]]
* Der Agent unterzeichnet eine Sperranforderung mit dem für <tt>example.com</tt> autorisierten Schlüsselpaar, und die Let’s&nbsp;Encrypt-Zertifizierungsstelle überprüft, ob die Anforderung autorisiert ist.
* In diesem Fall werden Sperrinformationen in den normalen Sperrkanälen (z.B.
* OCSP) veröffentlicht, sodass vertrauende Parteien wie Browser wissen können, dass sie das widerrufene Zertifikat nicht akzeptieren sollten.


[[Image:Bild4.png|top|Anfrage zum Widerruf eines Zertifikats für example.com
</noinclude>
[[Kategorie:Verschlüsselung]]

Aktuelle Version vom 29. Dezember 2025, 09:59 Uhr

Let's Encrypt - Zertifizierungsstelle für X.509-basierte TLS-Zertifikate

Beschreibung

Automatisierte Ausstellung und Erneuerung von TLS-Zertifikaten

ACME-Protokoll (RFC/8555)

  • 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
Zertifizierungsstelle für X.509-basierte TLS-Zertifikate

Internet Security Research Group (ISRG)

  • offen
  • gemeinnützig
  • automatisiert
  • kostenlos
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

Zertifikate

Domain-Validation

Domain-Validation-(DV)-Zertifikate

  • DNS-Namen
  • Einzelnamen
  • Subject-Alternative-Name-Zertifikate
  • Wildcard-Zertifikate
OV- und EV-Zertifikate

Werden nicht angeboten

  • Antragsprozesse nicht vollständig automatisierbar
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
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
  • stellt davon abgeleitete Zwischenzertifikate bereit
Kompatibilität mit älteren Clients
  • 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

ACME

Automatic Certificate Management Environment

Funktionsweise von ACME

Architektur

ACME-Ablauf

Objekte und Schritte

Schritt Beschreibung
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

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
  • 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

Rate Limits

Let’s Encrypt setzt v=erschiedene 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



ACME-Clients

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

ACME Versionen

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


Anhang

Siehe auch



Weblinks

  1. Offizielle Website von Let’s Encrypt
  2. Technische Einführung in Let’s Encrypt