Let's Encrypt: Erste Erfahrungen mit dem HTTPS für jedermann

 2/4
Ferdinand Thommes
146 Kommentare

Das Konzept von Let's Encrypt

Das Projekt Let's Encrypt wurde vor rund einem Jahr von der Internet Security Research Group (ISRG) ins Leben gerufen, um HTTPS flächendeckend zu verbreiten. Erreicht werden soll das durch die Beseitigung der nicht technisch bedingten Hemmnisse; die wiederum sind ja ebenfalls nur Resultat der zu geringen Verbreitung von HTTPS. Die von Let's Encrypt ausgestellten Zertifikate sind kostenlos und erfordern so gut wie kein technisches Vorwissen. Der Anwender muss lediglich seinen Server per SSH erreichen und ein paar Befehle in ein Terminal eingeben. Der gesamte Vorgang dauert wenige Minuten.

Die ISRG wurde gegründet, um die Sicherheit im World Wide Web zu erhöhen. Let's Encrypt ist das erste Projekt, das die Entwickler umgesetzt haben. Die ISRG wird von Akamai, Cisco, CoreOS, der Electronic Frontier Foundation (EFF), der Mozilla Foundation, der University of Michigan und der Stanford Law School unterstützt. Geschäftsführer ist Mozillas Josh Aas, der auch einen Vorstandssitz innehat. Das Root-Zertifikat von Let's Encrypt hat zum jetzigen Zeitpunkt noch kein Browser als vertrauenswürdig eingestuft. Um dieses Problem zu umgehen, sind die von Let's Encrypt genutzten Zwischenzertifikate „Let’s Encrypt Authority X1“ und „Let’s Encrypt Authority X2“ von der etablierten CA IdenTrust gegengezeichnet, sodass alle gängigen Browser den von Let's Encrypt ausgestellten Zertifikaten vertrauen.

Firefox zeigt Details zu HTTPS
Firefox zeigt Details zu HTTPS

Die Technik hinter Let's Encrypt

Let's Encrypt beschreitet einen dualen Weg, um das Netz sicherer zu machen. Anwender können sich ein Zertifikat entweder halbautomatisch ausstellen lassen und dieses dann selbst in die Webserver-Konfiguration eintragen, oder sie überlassen den kompletten Prozess der Clientsoftware von Let's Encrypt. Letzteres funktioniert derzeit nur mit dem Apache-Webserver unter Debian und seinen Derivaten. Für den immer mehr Marktanteile hinzu gewinnenden Webserver Nginx gibt es bereits ein Plugin, womit zumindest die Erstellung von Zertifikaten gelingt, die derzeit aber noch händisch eingefügt werden müssen. Eine Lösung für Windows Server / IIS ist von der Community bereits in Angriff genommen worden.

Der in Python geschriebene Let's-Encrypt-Client wird auf dem Webserver ausgeführt und kommuniziert zwecks Prüfung der Verfügungsgewalt über die jeweilige Domain mit dem Let's-Encrypt-Server. Dabei wird das vom Let's-Encrypt-Projekt spezifizierte Protokoll Automated Certificate Management Environment (ACME) genutzt. Es bildet den Dreh- und Angelpunkt dafür, warum Let's Encrypt in Sekunden ein angefordertes Zertifikat kostenfrei ausstellen kann. Die Überprüfung, ob der Antragsteller über die Domain verfügen kann, erfolgt automatisiert: Der Let's-Encrypt-Server fordert den Let's-Encrypt-Client dazu auf, eine Datei mit vorgegebenem Namen und Inhalt via HTTP auf der jeweiligen Domain verfügbar zu machen. Falls der Let's-Encrypt-Server diese Datei anschließend abrufen kann, gilt der Antragsteller als legitimer Inhaber der Domain. Eine Verifizierung per DNS-Eintrag ist für das Frühjahr geplant.

Let's Encrypt stellt derzeit nur Domain-Validated-Zertifikate (DV) aus, die lediglich die Verfügungsgewalt über eine Domain sicherstellen und die für den Webauftritt von privaten Anwendern sowie kleineren Projekten und Firmen meist ausreichen. Außer DV-Zertifikaten bieten die meisten CAs auch noch Organization Validation (OV) und Extended Validation (EV) an. Jene validieren zusätzlich zur Verfügungsgewalt über die Domain auch die im Zertifikat enthaltenen Unternehmensinformationen wie etwa Name und Anschrift. Für EV-Zertifikate gelten noch strengere Vergabekriterien (u.a. keine Wildcard-Unterstützung) und sie sind um ein Vielfaches teurer als DV-Zertifikate, führen aber zu einer vertrauenserweckenden Darstellung des Unternehmensnamens auf grünem Hintergrund in der Adressleiste des Browsers.

Wildcard-Zertifikate zum Absichern einer Domain inklusive aller Subdomains (z.B. *.computerbase.de) unterstützt Let's Encrypt noch nicht, ein Zertifikat kann jedoch via Subject Alternative Names bis zu zehn explizit genannte Subdomains mit abdecken.