"Verbindung ist sicher": kostenlose SSL Zertifikate: Let's Encrypt
Vor nicht allzu langer Zeit musste für ein SSL-Webserver Zertifikate noch etwas bezahlt werden, inzwischen gibt es Anbieter, die Zertifikate gratis und automatisiert zur Verfügung stellen. Ich war überrascht, wie einfach das geht …
"Nicht sicher“
Ohne SSL-Zertifikat erscheint eine Warnung, dass die Seite „Nicht sicher“ ist:
„Verbindung ist sicher“
Anfangs um das Admin-Portal meiner Webseite etwas sicherer zu gestalten, später um für alle Webseiten https zu verwenden, habe ich diese auf SSL umgestellt. Für die Admin-Oberfläche wollte ich ursprünglich, aus Kostengründen, ein selbstsigniertes Zertifikat (Self-Signed-Certificate) verwenden. Auch eine eigene Zertifizierungsstelle war eine mögliche Option. Damit der Browser, bei dessen Verwendung keine Zertifikatswarnung ausgibt, hätte ich das Zertifikat auf allen Endgeräten einspielen müssen. Speziell bei Android ist das, wie ich lernen musste, keine leichte Aufgabe. Auf der Suche nach einem öffentlichen Zertifikat bin ich auf „StartSSL Free“ gestoßen, was auch einige Jahre funktioniert hat, der Betrieb von StarSSL wurde aber am 1. Jänner 2018 eingestellt, heute ist Let’s Encrypt für kostenlose Zertifikate das Maß aller Dinge.
Let’s Encrypt
Die vollautomatisierte Zertifizierungsstelle Let’s Encrypt wurde durch zahlreiche namhafte Sponsoren, darunter Mozilla, Cisco, Facebook, HP und einige mehr, ermöglicht. Das Besondere an Let’s Encrypt ist, dass der Webserver mittels installierter API das Zertifikat selbst beantragt, installiert und regelmäßig erneuert. Der Webseitenbetreiber benötigt dazu keinerlei Hintergrundwissen. Ich beobachte das Projekt bereits seit Anfang 2015. Ende 2015 wollte ich Let’s Encrypt auf meinem Webserver testen. Zu dieser Zeit war noch etwas Handarbeit für die Konfiguration notwendig und bei mir hat das Skript auf Anhieb noch nicht funktioniert.
Den nächsten Versuch habe ich im Mai 2016 gestartet: Siehe da, jetzt gibt es sogar eine Plesk-Erweiterung.
Update 2020: Alternativ kann Lets Encrypt auch mit Docker und nginx eingesetzt werden, siehe: LetsEncrypt Reverse Proxy in der Praxis.
September 2021 - ISRG Root X1
Ich habe schon mehrfach darüber gelesen und aktuell von Let’s Encrypt auch noch ein E-Mail mit der Information bekommen und diese hier zusammengefasst:
Let’s Encrypt – Änderung im September 2021Update 2021: Ab September muss Let’s Encrypt sein eigenes Root-Zertifikat ISRG Root X1 verwenden, alte Geräte bekommen dadurch eine Zertifikatswarnung, siehe: letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/
Ursprünglich hat Let’s Encrypt für einen schnelleren Start ein bestehendes Root-Zertifikat verwendet, welches in allen Geräten verfügbar ist: DST Root CA X3. Das Zertifikat hat als Ablaufdatum den 30.9.2021. Das Datum kann in den Details aller verwendeten Zertifikate begutachtet werden:
Als Auswirkung bekommen alte Geräte, die jahrelang nicht mehr mit Updates versorgt wurden und somit das neue Letsencrypt Root Zertifikat ISRG Root X1 noch nicht bekommen haben, eine Zertifikatswarnung. Betroffen sind laut der Let’s Encrypt-Seite folgende bekannte Geräte:
- Blackberry < v10.3.3
- Android < v2.3.6
- Nintendo 3DS
- Windows XP prior to SP3
- cannot handle SHA-2 signed certificates
- Java 7 < 7u111
- Java 8 < 8u101
- Windows Live Mail (2012 mail client, not webmail)
- cannot handle certificates without a CRL
- PS3 game console
- PS4 game console with firmware < 5.00
Im Mai 2021 hat auch diese Seite bereits ein Zertifikat auf Basis der neuen ISRG Root X1 CA erhalten:
Quelle: letsencrypt.org/docs/certificate-compatibility/
Plesk
Für die Verwendung von Let’s Encrypt mithilfe von Plesk musste ich Plesk auf die neueste Version upgedatet, nach einem Wechsel zu den Erweiterungen konnte ich Let’s Encrypt auswählen und installieren:
In der installierten Erweiterung werden sämtliche, auf dem Webserver installierte, Domänen aufgelistet. Beim Klick auf eine Domäne kann das Zertifikat installiert werden, automatisch und ohne einen Gedanken an die Konfiguration zu verschwenden:
Einzig die Schreibrechte in den Ordner „.well-known“ im Root-Ordner der jeweiligen Webseite, machte bei der ein oder anderen Domäne Probleme. Die Lösung ist denkbar einfach:
Error: Let’s Encrypt SSL certificate installation failed
Failed letsencrypt execution: filemng: Error occurred druing /bin/mkdir command. filemng: Error occured during /bin/rm command.
Command '['/usr/local/psa/admin/bin/filemng',u'user',mkdir','-p',u'/var/www/vhosts/domain/.well-known/acme-challenge']' returned non-zero exit status 1
Nachdem ich mit dem Dateimanager den Ordner „.well-known“ angelegt und entsprechende Schreibrechte vergeben habe, hat die Installation dann geklappt:
Zertifikat erneuern
Ein Blick in Crontab zeigt einen Task, welcher das Zertifikat monatlich automatisch erneuert. Die Gültigkeit des Zertifikates beträgt 3 Monate. Also vonseiten des Webmasters nichts mehr zu machen. Anbieterdetails, siehe https://letsencrypt.org/
Fazit
HTTPS-Sicherheit muss nichts kosten. Gerade kleinere Unternehmen oder private Webseiten profitieren von den kostenlosen Zertifikaten. Durch die einfache Integration von Let’s Encrypt kann ein kostenloses Zertifikat sogar einfacher, schneller und unkomplizierter installiert werden als ein kostenpflichtiges. Eine universelle und einfache Lösung dazu bietet Docker, siehe auch: LetsEncrypt Reverse Proxy in der Praxis.
{{percentage}} % positiv
DANKE für deine Bewertung!
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]