Let's Encrypt: Erste Erfahrungen mit dem HTTPS für jedermann
3/4Wenig Vorbereitungen
ComputerBase hat noch während der geschlossenen Betaphase von Let's Encrypt erste Erfahrungen mit dem Verfahren gesammelt und mit Servern unter Debian und Ubuntu Zertifikate erstellt. Dazu war ein Antrag nötig, woraufhin die beantragte Domain auf einer Whitelist landet. Ab heute fallen diese Restriktionen weg und jeder kann ohne Anmeldung am offenen Betatest teilnehmen.
Hilfe gibt es im Forum und im IRC
Die Software ist robust und für Webserver ohne ungewöhnliche Konfigurationen gut anwendbar. Wie sie sich allerdings in abweichenden Konfigurationen verhält, lässt sich nicht einschätzen. Wer also kein allzu großes Vertrauen in seine Kenntnisse bei der Konfiguration des Apache Webserver hat, sollte besser bis Frühjahr 2016 warten, wenn das Projekt die Betaphase verlässt und in den Alltagsbetrieb übergeht. Kompetente Hilfe gibt es im Community-Forum und im IRC-Channel #letsencrypt im Freenode-Netzwerk.
Die alleinige Ausstellung eines Zertifikats ohne Integration in den Webserver sollte in jedem Fall funktionieren. Dann muss das Zertifikat jedoch manuell eingepflegt werden, wozu es Anleitungen im Netz gibt. Mit dieser Vorgehensweise können auch Betreiber eines Nginx-Servers bereits jetzt Zertifikate erhalten.
Praktische Umsetzung in Minuten
Der gesamte Vorgang der Installation der Software und der Validierung, der Ausstellung sowie der Implementierung eines Zertifikats dauerte keine fünf Minuten. Nach dem Anmelden auf dem Server muss per SSH sichergestellt werden, dass das Paket git installiert ist:
sudo apt-get update && sudo apt-get install git
Daraufhin muss der Let's-Encrypt-Client von Git herunter geladen werden
git clone https://github.com/letsencrypt/letsencrypt
und anschließend in das neue Verzeichnis gewechselt werden:
cd letsencrypt
Das Herunterladen der Software ist vermutlich bald nicht mehr nötig, da das Paket python-letsencrypt auf dem Weg in Debians Archiv ist und damit zeitnah auch in Ubuntu verfügbar sein sollte.
Zur Erstellung und Implementierung des Zertifikats ist lediglich ein Befehl erforderlich:
sudo ./letsencrypt-auto --rsa-key-size 4096 -d example.net
example.net muss dabei durch die Domain, für die das Zertifikat gelten soll und über die der Server erreichbar ist, ersetzt werden. Wenn die Option --rsa-key-size 4096 weglassen wird, erfolgt die Verschlüsselung „nur“ mit 2.048 Bit.
Falls lediglich ein Zertifikat erstellt werden soll, ohne automatisch die Konfiguration des Webservers anzupassen, lautet der Befehl:
sudo ./letsencrypt-auto certonly --rsa-key-size 4096 -d example.net
Hierzu muss der Webserver vorher gestoppt werden, damit der Let's-Encrypt-Client kurzzeitig Port 80 nutzen kann. Sollen mehrere Subdomains mit erfasst werden, sieht das so aus:
sudo ./letsencrypt-auto --rsa-key-size 4096 -d example.net -d sub1.example.net -d sub2.example.net ...
Das Script installiert zunächst eine Anzahl an Paketen, die es benötigt, und fragt dann ab, ob der Apache-Server benutzt werden soll, oder ein ad hoc erstellter Standalone-Server. Letzteres ist eines der Plugins, die in der Anleitung näher beschrieben sind. Hier kann die Voreinstellung mit Apache gemeinhin übernommen werden. Die Frage, ob alle Inhalte der Domain mit HTTPS ausgeliefert werden sollen, wurde bejaht. Daraufhin werden zunächst die möglichen Domains zur Auswahl angeboten und dann im Hintergrund validiert, ob er Antragsteller über die entsprechende Domain verfügt, worauf das Zertifikat erstellt und implementiert wurde. Die Zertifikate wurden unterhalb von /etc/letsencrypt/live/example.net abgelegt. Dieses Verzeichnis sollte an einen sicheren Ort kopiert werden, es enthält neben den Zertifikaten auch den zu Anfang des Vorgangs erstellten privaten Schlüssel.
In der Betaphase muss das Zertifikat noch manuell erneuert werden
Der Vorgang nach Eingabe des Befehls bis zur Erfolgsmeldung betrug in beiden Testfällen unter einer Minute. Die Domain war sofort mit HTTPS erreichbar, der Test auf der Webseite Qualys SSL Server Test verlief positiv. Das ausgestellte Zertifikat ist aus Sicherheitsgründen nur 90 Tage gültig. Später soll auch das Erneuern eines Zertifikats automatisiert und dann die Laufzeit eventuell weiter bis auf 30 Tage verkürzt werden. Ist der Vorgang erst einmal automatisiert, spielt die Laufzeit der Zertifikate keine Rolle mehr.
Da das in der Betaphase noch nicht realisiert ist, muss derzeit der Befehl vor Ablauf der Gültigkeit erneut abgesetzt werden. Das kann manuell oder als Cronjob geschehen. Soll ein Zertifikat zurückgezogen werden, etwa weil dessen privater Schlüssel kompromitiert wurde, so ist auch das kostenlos möglich – die grundsätzlich ebenfalls kostenlose CA StartSSL verlangt für den Rückruf hingegen eine Gebühr.