SSL-Zertifikat kostenlos einrichten mit Let’s Encrypt und Certbot
Das Motto der Certificate Authority lautet dabei: Alle Anbieter*innen von Websites sollen Zugang zu einfacher und optimaler SSL-Verschlüsselung haben. Dadurch soll die Kommunikation im Internet für alle sicherer werden.
Positive Signale für Google und Nutzer*innen
Diese Beliebtheit spiegelt einen allgemeinen Trend wider. So kennzeichnet Google Chrome seit Anfang 2018 Websites ohne HTTPS als unsicher. Als Ranking-Faktor für die Suchmaschine von Google gilt ein SSL-Zertifikat schon seit 2014.
Ein SSL-Zertifikat ist darüber hinaus auch ein starkes Signal an die Nutzer*innen. Selbst Websites, die keine wichtigen Daten verarbeiten, profitieren von der höheren Vertrauenswürdigkeit. Für alle Branchen, in denen diese Daten eingeholt und verarbeitet werden müssen, ist ein SSL-Zertifikat Pflicht.
Wann lohnt sich ein SSL-Zertifikat von Let’s Encrypt?
Der Markt für SSL-Zertifikate ist groß. Let’s Encrypt hebt sich durch sein kostenloses Angebot von anderen Certificate Authorities ab. Doch nicht für alle Betreiber*innen von Websites ist das kostenlose SSL-Zertifikat die beste Option.
Damit Let’s Encrypt SSL-Zertifikate schnell und automatisiert ausstellen und erneuern kann, werden sie nur über die Domain validiert. Mehr als den Nachweis, Inhaber der Domain zu sein, muss man also nicht liefern. Es gibt Unternehmen, die hier aber auf Extended Validation und damit ein spezielles EV SSL-Zertifikat setzen möchten.
Zudem lassen sich nur öffentliche Websites durch Let’s Encrypt schützen. Die Einrichtung von Wildcard-Zertifikaten (s.u.) ist zudem komplex. Alle anderen Websites profitieren jedoch von der unkomplizierten und vor allem kostenlosen Bereitstellung der SSL-Zertifikate von Let’s Encrypt!
So richtet ihr SSL-Zertifikate von Let’s Encrypt ein
Mit dem Programm Certbot hat Let’s Encrypt eine einfach zu bedienende Möglichkeit geschaffen, um SSL-Zertifikate einzurichten. Bevor ihr mit Certbot loslegen könnt, müsst ihr diese Voraussetzungen erfüllen:
- Eure Website ist bereits online und läuft noch über HTTP
- Euer Webserver läuft mit einem UNIX-Betriebssystem
- Ihr habt Zugang zum Webserver über die Konsole
- Ihr dürft Kommandos als Super-User (Root) ausführen
- Ihr wisst, welche Webserver-Software ihr verwendet
Sollten euch einige dieser Voraussetzungen nicht klar sein, kontaktiert ihr am besten euren Hoster oder Systemadministrator. Am Ende dieses Artikels listen wir noch einige Möglichkeiten auf, die ihr nutzen könnt, wenn diese Voraussetzungen nicht zutreffen.
Es kann sein, dass ihr auf eurem Webserver keine Berechtigungen des Super-Users benötigt. Ihr könnt dementsprechend testen, ob die untenstehenden Kommandos auch ohne „sudo“ funktionieren.
Schritt für Schritt zum kostenlosen SSL-Zertifikat:
1. Öffnet eine SSH-Verbindung zum Webserver
Windows-Nutzer*innen benötigen dazu ein Programm wie Putty. Mac-Nutzer*innen öffnen dazu ein Terminal. Zur Anmeldung verwendet ihr die Zugangsdaten mit den Root-Rechten.
2. Installiert Certbot
Sobald ihr angemeldet seid, führt ihr nacheinander diese Kommandos aus (ohne das Dollarzeichen, das für das Zeichen vor dem Prompt steht):
$ wget https://dl.eff.org/certbot-auto
$ sudo mv certbot-auto /usr/local/bin/certbot-auto
$ sudo chown root /usr/local/bin/certbot-auto
$ sudo chmod 0755 /usr/local/bin/certbot-auto
3. Richtet das SSL-Zertifikat auf eurem Webserver ein
Im nächsten Schritt richtet Certbot das SSL-Zertifikat je nach eurer Webserver-Software ein. Die meisten Webserver verwenden hier Apache:
$ sudo /usr/local/bin/certbot-auto certonly --apache
Solltet ihr nicht den Apache verwenden, muss am Ende ein entsprechend anderer Parameter eingetragen werden. Beispielsweise für Nginx:
$ sudo /usr/local/bin/certbot-auto certonly --nginx
4. Sorgt für die automatische Erneuerung des Zertifikats
Das SSL-Zertifikat ist damit schon eingerichtet. Da es jedoch nur drei Monate gültig ist und daher regelmäßig erneuert werden muss, bietet sich eine automatische Erneuerung an. Diese kann über einen Cronjob auf dem Webserver angelegt werden:
$ echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew" | sudo tee -a /etc/crontab > /dev/null
Hierzu benötigt ihr zusätzlich die Möglichkeit, ein Skript mit Python auszuführen.
5. Testet, ob alles geklappt hat
Ihr habt alle Eingaben befolgt und habt keine Fehlermeldungen bekommen? Dann öffnet den Browser und ruft eure Website mit beginnendem HTTPS auf.
Lädt die Website und wird das Schlosssymbol im Browser angezeigt? Dann war alles erfolgreich und ihr habt nun eine geschützte Website mit einem SSL-Zertifikat!
Wenn auf der Website Inhalte (zum Beispiel Bilder) über HTTP eingebunden werden, kann es immer noch zu Warnhinweisen kommen. Dieser sogenannte Mixed Content lässt sich mit Tools aufspüren.
Spezifische Anleitungen und Sonderfälle
Diese Anleitung solltet ihr auf jedem Webserver, der auf Unix basiert, umsetzen können. Sollte es im Verlauf zu einem Fehler gekommen sein, dann informiert euch genau über euer System. Auf der offiziellen Seite von Certbot lässt sich mit der Eingabe von Webserver und Webserver-Software dann ein spezifisches Tutorial aufrufen.
Solltet ihr keinen Zugang zum Webserver haben und stattdessen die Hosting-Software Plesk verwenden, gibt es dafür eine Erweiterung.
Wenn ihr neben eurer Hauptdomain auch weitere Subdomains verwendet (etwa blog.example.com), reicht ein einfaches SSL-Zertifikat nicht aus. Um alle Subdomains zu schützen, muss ein Wildcard-Zertifikat installiert werden. Informationen zur Installation finden sich auf der Website von Certbot.
Fazit: Schneller und kostenloser Schutz
Dank Let’s Encrypt braucht heute niemand mehr auf ein SSL-Zertifikat zu verzichten. Die Einrichtung ist nicht nur schnell und einfach, sondern vor allem kostenlos. Das ist ideal für den Schutz einer einzelnen Website.
Wir hoffen, dass ihr mit unserer Anleitung den Umstieg von HTTP auf HTTPS meistern könnt. Damit profitiert ihr in Zukunft nicht nur von der erhöhten Sicherheit, sondern auch von dem zusätzlichen Vertrauen, das euch Nutzer*innen entgegenbringen.
EV-Zertifikate sind ja schon eine tolle Einnahmequelle. Sie sind kein bisschen sicherer in ihrer Funktion als kostenlose Let’s-Encrypt-Zertifikate, färben das Schloss im einen oder anderen Browser aber anders ein oder schreiben zusätzlich den Firmennamen mit dazu. Diese Farbe will schon ordentlich was kosten.
Geht ein Zugriff Rootinnen Zugriff auch ;-)
Klappt nicht wirklich:
Procedur läuft zwar durch, aber 2 Fehler:
1) Self signed certifikate – Your SSL certificate appears to be self signed. Browsers will display an error whenever someone attempts to visit your site.
2) „Domain Matching: Your SSL certificate does not match your domain name! Protected Domains: No Domains Listed.“ Und das obwohl ich nicht mal die Domain angeben musste, sondern nur die Nummer „1“ für die eine Domain, die ich verwende.