Mit dem 23. Juli 2018 als Stichtag hat Google Anfang Februar einen neuen Meilenstein auf dem Weg zum vollverschlüsselten Web geschaffen. An diesem Tag erscheint die neue Version 68 des Browser Chrome und diese wird erstmals alle über HTTP aufgerufenen Webseiten als unsicher markieren. An der Position des bereits bekannten grünen Schlosses, welches bei sicheren HTTPS-Verbindungen angezeigt wird, steht dann ein grauer Schriftzug, welcher auf die Unsicherheit der Verbindung hinweist.

Hinweise auf die Unsicherheit von HTTP nehmen in den letzten Jahren immer mehr zu. Auch Mozilla hat mit Firefox 52 einen Warnhinweis für Login-Formulare auf über HTTP ausgelieferte Webseiten in den Browser eingebaut, um Nutzer darüber zu informieren, dass ihre wertvollen Daten wie z. B. Nutzername und Passwort offen lesbar durch das Internet geschickt werden.

Für Administratoren von Webdiensten, die über das Internet erreichbar sind, stellt sich durch diese Entwicklung immer stärker die Frage, wie nachhaltig und kostengünstig ein verschlüsselter Zugriff auf den Dienst gewährleistet werden kann. Für eine solche Verschlüsselung sind schließlich TLS-Zertifikate erforderlich und die Ausstellung dieser lassen sich Zertifikatsstellen sehr gut bezahlen.

Unsere Empfehlung: Let’s Encrypt

Glücklicherweise bieten wir für UCS im App Center die App Let‘s Encrypt an. Die App ermöglicht den automatisierten Abruf eines kostenlosen Zertifikats und die Einrichtung dauert nur wenige Minuten.

„a free, automated, open source certificate authority“

2014 von der Electronic Frontier Foundation, der University of Michigan und Mozilla aus der Traufe gehoben, hat das Projekt Let‘s Encrypt 2017 sein 100 millionstes automatisiert und kostenlos ausgestelltes Zertifikat ausgegeben und trägt seinem Slogan „Encrypt the entire web“ damit gebührend Rechnung.

Vor dem Hintergrund der Snowden-Enthüllungen von 2013 hat Let‘s Encrypt sich zum Ziel gesetzt, SSL/TLS-Zertifikate im Internet für jeden Menschen zugänglich zu machen und kostenlose Verschlüsselung im Web voranzutreiben. Seither hat das Projekt diverse namhafte Unternehmen überzeugt und als Sponsoren gewonnen, darunter Akamai, Cisco oder seit neuestem auch Netflix. Ziel des Projektes ist es, den Administrationsaufwand für die Anwender möglichst gering zu halten. Ein HTTPS-Server soll mit minimaler Konfiguration dazu imstande sein, autonom Zertifikate anzufragen. Diese Maxime liegt auch der Let‘s Encrypt-App für UCS zugrunde.

Funktionsweise von Let‘s Encrypt – automatisiert und transparent

Ein entscheidender Aspekt für das Design der Infrastruktur von Let‘s Encrypt ist ein vollkommen automatisierter Prozess zur Erstellung und Validierung eines angefragten Zertifikats sowie völlige Transparenz über diese sog. Transaktionen. Es kann jederzeit eingesehen werden, wer wann für welche Domain ein Zertifikat angefragt hat, um Missbrauch zu vermeiden.

Die Technik dahinter – ACME basierende Schlüssel und Challenges für die Clients

Technisch liegt Let‘s Encrypt das sog. ACME-Protokoll zugrunde. ACME steht für Automated Certificate Management Environment und wurde von der Internet Security Research Group (ISRG) für Let‘s Encrypt designed. Es basiert auf JSON und HTTPS und ist bereits in Clients in vielerlei Form implementiert worden.

Bildquelle: www.letsencrypt.org

Der ACME-Client erstellt in Zusammenarbeit mit den Servern des Let‘s Encrypt Projekts ein sog. autorisiertes Schlüsselpaar für die jeweilige Domäne. Dieses Schlüsselpaar ist dann dazu berechtigt, ein Zertifikat für die Domäne anzufragen oder zurückzuziehen. Ist das Schlüsselpaar bei Let‘s Encrypt registriert, erstellt der Client eine Certificate Signing Request (CSR), signiert diese mit seinem Schlüssel und sendet sie an Let‘s Encrypt. Die Let‘s Encrypt-Server wählen dann eine Challenge aus, welche der Client bestehen muss. Diese kann z. B. lauten: Lege Datei „x“ mit Inhalt „y“ auf deinem Webserver ab. Sobald der Client meldet, dass er die Challenge ausgeführt hat, überprüft Let‘s Encrypt, ob er damit erfolgreich war. In diesem Fall, ob Datei „x“ mit Inhalt „y“ auf der angefragten Domäne auffindbar ist.

Verwendung der Let‘s Encrypt-App in UCS zur Erstellung sicherer Zertifikate

Die Let‘s Encrypt-App vereinfacht dieses Prozedere stark und kann wie gewohnt einfach über das App Center in der Weboberfläche installiert werden. Nach der Installation können über die App-Einstellungen im App Center die gewünschten Domains eingetragen und die Verwendung des Zertifikats in Apache, Dovecot und Postfix konfiguriert werden.

Screenshot zur Konfiguration der UCS App Lets_Encrypt

Durch einen Klick auf „Änderungen speichern“ wird ein Skript gestartet, welches das Zertifikat holt und in den jeweiligen Diensten konfiguriert. Ca. 10 Sekunden nach dem Klick auf „Änderungen speichern“ können Sie über das Status-Feld in den App-Einstellungen sehen, ob das Zertifikat erfolgreich abgerufen wurde.


Status_Lets_Encrypt


 

Wurde das Zertifikat erfolgreich abgerufen, müssen zuletzt noch die konfigurierten Dienste neu gestartet werden. Dies kann über das Modul „Systemdienste“ unter der Kategorie „System“ in der Weboberfläche erreicht werden. Damit ist die Einrichtung bereits abgeschlossen! Ein während der Installation angelegter Cronjob sorgt dafür, dass alle 30 Tage ein neues Zertifikat geholt wird, um stets ein valides Zertifikat im System zu haben. Dieser startet auch die konfigurierten Dienste automatisch neu.

Verwenden der Testumgebung vor Liveschaltung

Die App bietet außerdem die Möglichkeit, den sog. Staging-Endpunkt von Let‘s Encrypt zu benutzen. Dieser Endpunkt ist für Testzwecke gedacht und sollte nur zum Testen der App verwendet werden. Sie können so sicherstellen, dass der Abruf des Zertifikats und die Verifizierung Ihrer Domäne funktioniert, ohne dass die Konfiguration eines Dienstes verändert wird. Setzen Sie dazu einfach den Haken unter „Verwende Let‘s Encrypt Test-CA“ und klicken Sie wie gewohnt auf „Änderungen speichern“. Die Status-Meldung weist im Falle eines erfolgreichen Abrufs anschließend auch darauf hin, dass es sich um ein für den Produktiveinsatz nicht geeignetes, ungültiges Zertifikat handelt. Nachdem der Testabruf nun erfolgreich war, kann der Haken wieder entfernt und erneut auf „Änderungen speichern“ geklickt werden, um den produktiven Endpunkt zu verwenden und somit ein valides Zertifikat zu erhalten.

Wenn der Zugriff auf den Webserver Apache via HTTPS erfolgreich konfiguriert wurde, kann dieser außerdem so konfiguriert werden, dass er alle eingehenden Verbindungen automatisch auf HTTPS umleitet. Der Verifizierungsmechanismus der Let‘s Encrypt-App wird davon nicht beeinflusst.

ucr set apache2/force_https=yes
systemctl restart apache2.service

Haben Sie weitere Fragen, hinterlassen Sie doch einen Kommentar oder besuchen unser Forum, wo Ihnen unsere Experten gern weiterhelfen.

Testen Sie Let’s Encrypt

Junior IT Consultant im Professional Service Team bei Univention.

Was ist Ihre Meinung? Hinterlassen Sie einen Kommentar!

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