letsencrypt – kostenlose Zertifikate zum Absichern nutzen

Jetzt ist es soweit: letsencrypt stellt in einer oeffentlichen Beta kostenlose Zertifikate fuer Webserver aus, welche mit allen gaengigen Browsern akzeptiert werden. Ab sofort gibt es also keinen wirklich vernuenftigen Grund mehr, auf die Transportverschluesselung per https zu verzichten. Und das Beste an der Sache ist, dass es auch nach der Beta-Phase so bleiben wird. Denn das ist das Ziel dieses Projektes, welches Branchen-Groessen wie Mozilla und seit Donnerstag sogar Facebook als Sponsoren hat. Und obwohl es auch keinen wirklich vernuenftigen Grund gibt, die Datenverwurstungszentrale per https anzubieten, mache ich das jetzt doch. Schon allein um zu zeigen, wie einfach es geht 😉 Ab heute verrate ich also alle meine IT-Geheimnisse auch auf verschluesselten Wegen. Zu ueberpruefen hier und hier und natuerlich in Eurem Browser.

Die Datenverwurstungszentrale mit Letsencrypt-Beglaubigung im feinsten A+

Die Datenverwurstungszentrale mit Letsencrypt-Beglaubigung im feinsten A+

Klar gab es auch bisher schon die Moeglichkeit, kostenlose Zertifikate zu nutzen. Seien es Lockangebote wie bei Comodo oder Anbieter mit „spezieller Ausrichtung“ wie StartSSL oder eben auch schlicht eine eigene CA mit OpenSSL. Paraniod wie ich so bin, wuerde ich letzteres zwar technisch immer bevorzugen. Einfach alle anderen Root-Zertifizierer aus Browser und Betriebssystem rauswerfen und nur selber gepruefte Zertifikate zulassen! Aber fuers kleine Kontakt-Formular auf der Webseite ist das kaum sinnvoll. Schliesslich muesste dann jemand erstmal bei Euch anrufen, um sich das Zertifikat bestaetigen zu lassen, damit er Euch anschliessend ganz sicher ein freundliches Hallo per Webformular sagen kann. Hm. Das ganze Zertifizierungssystem ist natuerlich krank. Aber alle nutzen es und irrwitzigerweise schreiben es einige deutsche Vorschriften fuer den geschaeftlichen Datenaustausch sogar vor. Umso besser, wenn man sich jetzt den ganzen organisatorischen Aufwand mit einem Zertifizierer sparen und gleich ein technisch genauso sicheres wie allgemein akzeptiertes Zertifikat verwenden kann.

Letsencrypt ist eigentlich mit dem Anspruch angetreten, das Verwenden von Zertifikaten so einfach zu machen, dass niemand mehr davor zurueckschrecken muss. Unterstuetzt werden bislang Apache und Nginx als Webserver. Bis zum Ende der Beta soll es aber auch Loesungen fuer den IIS geben. Trotzdem sind die meisten Provider darauf schlicht noch nicht eingestellt. Ich werde mit meinen Angeboten auch erstmal warten, bis in drei Monaten die erste Erneuerungsrunde erfolgreich getestet ist. Das ist naemlich einer der „Nachteile“ der neuen Zertifizierungsstelle. Beglaubigt wird derzeit nur fuer laengstens drei Monate, dann muss verlaengert werden. Was aber durchaus nicht nur ein Nachteil ist! Kommt einem der Schluessel durch eine Unachtsamkeit doch mal abhanden, wird er nach 3 Monaten auf jeden Fall ungueltig. Klar, waere in einer schoenen Welt ohnehin das Zertifikat dank DANE vorher schon unbrauchbar zu machen. Aber das ist noch eine Ecke komplizierter als ein revoke bei einem der ueblichen Zertifizierer und bieten einige Provider deshalb auch gar nicht an. Aber wir wollten es ja einfach machen.

Um es unabhaenig von den Moeglichkeiten des Hosting-Providers zu gestalten, beschreibe ich den nur halbautomatischen Weg, der immer funktioniert. Zunaechst einmal muss ein Client her, welcher die Automated Certificate Management Environment (ACME) beherrscht. Am besten nehmen wir den offiziellen Client. Dieser laesst sich mit wenigen Schritten auf einem Ubuntu 14.04 (LTS) installieren. Wer gerade keins zur Verfuegung hat: Einfach flott eine VM mit dem ISO von http://releases.ubuntu.com/14.04/ installieren. Nicht vergessen, ein

apt-get update
apt-get upgrad

zu machen und sich bei Bedarf noch den Git-Client zu holen

apt-get git

Jetzt in ein beliebiges Verzeichnis wechseln und den aktuellen Letsencrypt-Client installieren.

git clone https://github.com/letsencrypt/letsencrypt

Um die weiteren Abhaenigkeiten kuemmert dieser sich mit

cd letsencrypt
sudo ./bootstrap/ubuntu.sh

dann selber. Wie schon gesagt: Letsencrypt ist mit dem Ziel angetreten, das Erstellen allgemein anerkannter Zertifikate einfach zu machen. Und schon kann es losgehen.

./letsencrypt-auto certonly --manual --email info@example.com -d example.com -d www.example.com

Wie man an dem Beispiel schoen sieht, lassen sich zwar keine sogenannten Wildcard-Zertifikate erstellen, aber dafuer per Parameter fast beliebig viele fuer Subdomains. Einen kleinen Stolperstein gibt es hier. Der Server checkt im Moment noch, dass die Email-Adresse auch zur Domain passt. Es also neben dem A-Record auch einen MX-Eintrag im DNS fuer genau diese Domain gibt. Andere Zertifizierer fragen dafuer normalerweise die whois-Datenbank ab. Vielleicht passiert das nach der Beta ja auch noch. Ansonsten ist es aber auch keine Schwierigkeit, sich fuer diesen Zweck eine Adresse unter der eigenen Domain anzulegen. Was auch ganz sinnvoll ist! Das kuenftige Zertifikat ist halt „nur“ 90 Tage gueltig, kann aber nach 60 Tagen (automatisch) verlaengert werden. Dazu will Letsencrypt rechtzeitig einen Reminder an diese Email-Adresse senden.

Aber keine Angst, wer sich vertippt hat, wird im naechsten Schritt nochmal zur Eingabe der Emailadresse aufgefordert bis es passt.

Die Domain der Email sollte mit der Zertifikatsdomain uebereinstimmen.

Die Domain der Email sollte mit der Zertifikatsdomain uebereinstimmen.

Im naechsten Fenster mit „Agree“ dann noch die Nutzungsbedinungen fuer Letsencrypt-Zertifikate bestaetigen. Anschliessen kommt beim manuellen Verfahren noch der Hinweis, dass die IP-Adresse gespeichert wird, was aber imho voellig okay ist.

Um sicherzustellen, dass kein Unberechtigter einfach so ein beglaubigtes Zertifikat bekommt, muss jetzt nur einer Ueberpruefung des Antragstellers erfolgen. Das erledigen die „klassischen CAs“ bei einfachen Zertifikaten meist ueber eine Email an die Adresse, welche in der whois-Datenbank hinterlegt ist. Da stehen aber auch schonmal irgendwelche Adressen des Domainproviders drin. Sollte ansich nicht, aber ist durchaus nicht ungewoehnlich. Daher geht Letsencrypt den einfacheren Weg, welcher vielleicht auch schon von anderen Domain-Checkern wie den Webmaster-Tools bekannt ist. Es muss eine Datei auf dem Webserver angelegt werden, welche eine Authorisierungs-Code enthaelt. Achtung: Das Verzeichnis lautet dabei immer /.well-known/acme-challenge/ und nicht alle Webserver sind so konfiguriert, dass sie „versteckte“ Verzeichnisse mit einem Punkt am Anfang auch uebers Web anzeigen. Gegebenenfalls muss man da mal kurzfristig den VHost anpassen, bis die Authorisierung erfolgt ist. Dann roedelt der Client etwas und anschliessend sollte im Terminal sowas erscheinen wie

IMPORTANT NOTES:
 - If you lose your account credentials, you can recover through
   e-mails sent to info@example.com.
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
   expire on 2016-03-04. To obtain a new version of the certificate in
   the future, simply run Let's Encrypt again.
 - Your account credentials have been saved in your Let's Encrypt
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will

That’s it! Wie sich daraus unschwer ersehen laesst, liegen der private key (privkey.pem) und das beglaubigte Zertifikat (fullchain.pem) jetzt im Verzeichnis /etc/letsencrypt/live/example.com/ Oder eben entsprechend dem der genutzten Domain. Es lassen sich mit den Client also auch Zertifikate fuer verschiedene Domains erstellen. Und auch nicht ganz unwichtig: Der private key sollte natuerlich bei aller Bequemlichkeit nicht fuer Dritte verfuegbar sein. Insofern ist der auf den ersten Blick vielleicht umstaendlichere Weg, es nicht einfach ueber ein Webformular zu machen, in jedem Fall der einzig vernuenftige! Sonst haette naemlich der Unterzeichner vollen Zugriff auf das Zertifikat, was aber unnoetig ist, wenn es nur beglaubigt werden soll.

Zum Schluss noch ein Hinweis in eigener Sache: Wer seinen Server bei mir entsprechend mit Zertifikaten von Letsencrypt nutzen will, legt bitte beide Dateien einfach in das Verzeichnis oberhalb von /htdocs/ und schickt mir eine Email. Ich hole sie mir dann von dort und schiebe sie in die Serverkonfiguration.

Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert