SSL-Zertifikat kostenlos einrichten mit Let’s Encrypt und Certbot

(Foto: Shutterstock)
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.
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.
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!
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:
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.
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
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
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.
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.
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.
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.
Bitte beachte unsere Community-Richtlinien
Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.
Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.
Dein t3n-Team
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.