In dieser Anleitung zeige ich euch, wie ihr in wenigen Schritten ein kostenloses SSL-Zertifikat von Lets Encrypt auf euren Raspberry Pi installieren könnt. Für die Installation und zur Verwaltung unseres Let’s-Encrypt-Zertifikates verwenden wir das Open-Source-Werkzeug Certbot. Die Umsetzung erfolgt ausschließlich über das Terminal auf dem Raspberry Pi (CLI).
Eine grafische Benutzeroberfläche ist nicht notwendig. Certbot ermöglicht es dem Anwender, ein SSL- und TLS-Zertifikat vom freien Anbieter Let’s Encrypt zu beziehen und auf dem eigenen Webserver zu implementieren. Diese Vorgehensweise zählt zu der einfachsten und zugleich besten Methode für private oder kleine Projekte im Maker Bereich. Es gibt überhaupt keine Sicherheitsbedenken bei der Verwendung einer kostenlosen Möglichkeit, wie in diesem Tutorial. Lets Encrypt gilt als sicher, vertrauensvoll und sehr seriös.
Schritt-für-Schritt-Anleitung
Wann sollte ich ein SSL-Zertifikat auf meinem Raspberry Pi installieren?
Ein SSL-Zertifikat ermöglicht uns die Aktivierung und die Verwendung von HTTPS. Greift ein Client auf den Webserver über das Protokoll zu, wird der komplette Datenverkehr zwischen dem Server und dem Client bzw. Endgerät verschlüsselt. Das ist sicherheitsrelevant und in der Regel immer dann notwendig, wenn wir einen Dienst oder eine Anwendung über das Internet bereitstellen.
Die Gültigkeit eines von Lets Encrypt herausgegebenen Zertifikats ist immer nur für eine bestimmte Zeit vorgesehen, darum müssen wir nach einer vorgegebenen Zeit ein neues SSL-Zertifikat für unseren Raspberry Pi beziehen. Dieser Schritt lässt sich sehr wartungsarm automatisieren, sodass du dich nach der Durchführung meiner Anleitung vollständig auf dein Projekt konzentrieren kannst.
Warum ist ein Lets Encrypt Zertifikat nur begrenzt gültig?
Die Laufzeit eines SSL-Zertifikats, welches von Lets Encrypt frei herausgegeben wird, ist in der Regel auf 90-Tage beschränkt. Das hat den Grund, weil man keine Geisterzertifikate im Umlauf haben möchte. So können Zertifikate kontrolliert und geordnet herausgegeben werden. Es würde viel Chaos bei der Verwaltung und der Neugenerierung geben, wenn die kostenfreien Zertifikate eine unbeschränkt lange Laufzeit hätten. Bei der großen Anzahl von Heimservern und Raspberry Pi’s weltweit, können wir davon ausgehen, dass täglich eine sehr große Anzahl an Zertifikaten, im Umlauf gebracht werden.
Voraussetzungen für die Installation von Certbot und der Beziehung eines gültigen SSL-Zertifikates von Lets Encrypt auf dem Raspberry Pi
Die Anleitung wurde für die offizielle Raspberry Pi Linux-Distribution „Raspberry OS 64-Bit“ geschrieben. Verwendest du eine andere Distribution, kann die erfolgreiche Durchführung meines Tutorials nicht gewährleistet werden. Da wir in dieser Installationsanleitung den Paketmanager APT verwenden, stehen die Chancen allerdings gut, dass die einzelnen Installationsschritte auch für Debian und Ubuntu basierte Distributionen funktionieren.
Starte dein System und melde dich als Benutzer mit Berechtigungen an. Bevor wir mit der Installation beginnen, sollte zunächst sichergestellt werden, dass der Raspberry Pi und die Paketquellen auf den neusten Stand sind.
Führe zuerst eine Aktualisierung durch:
sudo apt update && apt upgrade -y
Installation von Certbot für Apache, Nginx und Co.
Sobald dein Raspberry Pi 4 aktualisiert wurde, können wir die Software Certbot über das Terminal installieren, mit der wir das kostenlose SSL-Zertifikat von Let’s Encrypt beziehen werden. Certbot ist in unterschiedlichen Versionen erhältlich. Es existiert eine Standardversion und eine angepasste für z. B. den Apache-Webserver.
Verwendest du für dein Pi-Projekt einen Webserver auf Basis von Apache oder Nginx, sollten jeweils die angepassten Versionen installiert werden. Für alle anderen webbasierten Anwendungen können wir die Standardversion auf dem Raspberry Pi installieren.
Installation von Certbot für Apache:
sudo apt install python3-certbot-apache
Installation von Certbot für nginx:
sudo apt install python3-certbot-nginx
Installation von Certbot (Standardversion):
sudo apt install certbot
Sobald das Werkzeug erfolgreich installiert worden ist, fahre im nächsten Schritt mit der Generierung eines Zertifikats fort.
Ein Lets Encrypt SSL-Zertifikat mit Certbot auf dem Pi generieren (Terminal)
Bevor wir ein Lets Encrypt SSL-Zertifikat auf dem Raspberry Pi installieren können, benötigen wir eine Domain, für die das Zertifikat bei der Zertifizierungsstelle vergeben werden soll. Hast du bereits einen Domainnamen, den du verwenden möchtest?
In dieser Übersicht befinden sich einige kostenfreie DynDNS-Anbieter für das aktuelle Jahr. Nach der Registrierung erhältst du eine kostenlose Domain. Pflege die Zugangsdaten in deinem Router ein und gebe die Web-Ports 80/443 für die IP-Adresse deines Raspberry Pi frei. Andernfalls kann dieser Schritt einfach übersprungen werden.
Starte Certbot für Apache:
sudo certbot --apache
Starte Certbot für Apache:
sudo certbot --nginx
Starte Certbot für Apache:
sudo certbot
Sobald der Befehl abgesendet wurde, müssen wir die Anweisungen eines Assistenten über das Terminal befolgen. Lets-Encrypt benötigt einige Informationen für die Erstellung und die Herausgabe eines SSL-Zertifikats von uns.
Beantworte die folgenden Fragen auf deinem Raspberry Pi:
- Wie lautet deine E-Mail-Adresse? meinemail@veuhoff.net
- Bestätige die Terms of Service (ToS) mit A
- Darf deine E-Mail-Adresse mit der EFF für none-profit Zwecke geteilt werden? Y/N
- Trage deine Domain ein: www.meinedomaintest.de
Jetzt kann ein neues Zertifikat auf deinem Raspberry Pi generiert werden. Das soeben bezogene Lets Encrypt SSL/TLS-Zertifikat hat eine Gültigkeit von 90-Tagen. Danach läuft es automatisch ab. Damit dein Webserver auch weiterhin über HTTPS erreichbar bleibt und das SSL-Zertifikat automatisiert verlängert wird, können wir einen Crontab einrichten. Wie das funktioniert, zeige ich dir im nächsten Schritt.
Wo wird das Zertifikat gespeichert?
Das bezogene Zertifikat wird auf deinem Raspberry Pi in das folgende Verzeichnis gespeichert: /etc/letsencrypt/live/deinedomain.de/
Eine automatische Verlängerung mit einem Crontab einrichten
Certbot bringt bereits einen Befehl für die Erneuerung eines Lets Encrypt Zertifikats mit. Wir können diesen auch manuell ausführen. Öffne das Terminal auf deinem Raspberry Pi und gebe den folgenden Befehl ein.
Das SSL-Zertifikat manuell erneuern:
sudo certbot renew
Dieser Befehl ist hilfreich, wenn wir bisher noch keinen Crontab eingerichtet haben und plötzlich ohne ein gültiges Zertifikat dastehen und unsere Webseite nur über eine Warnmeldung erreichbar ist, dass die Verbindung nicht mehr sicher ist. Genau das passiert nämlich, wenn wir das Lets Encrypt Zertifikat nicht rechtzeitig auf unserem Raspberry Pi erneuern.
Damit uns das zukünftig nicht passiert, richten wir einen Crontab für die automatische Verlängerung unseres Zertifikats ein. Gib den folgenden Befehl in das Terminal ein, um einen neuen Job anzulegen.
Ein Job mit Crontab anlegen:
sudo crontab -e
Füge jetzt die folgende Zeile hinzu:
0 0 * * 1 certbot renew
Speichere die Änderungen und verlasse den Crontab-Editor wieder. Jetzt wird einmal die Woche am Montag um 00:00 Uhr eine Verlängerung des Lets Encrypt SSL-Zertifikats angestoßen. Das ist auch absolut ausreichend. Wir können uns jetzt wieder unserem Raspberry Pi und den genialen Projekten widmen.
Die Gültigkeit eines SSL-Zertifikats von einer IP-Adresse oder Domain überprüfen
Abschließend möchte ich dir noch eine schnelle Möglichkeit zeigen, wie wir den Status einer Domain oder einer IP-Adresse überprüfen können. Dafür gibt es sogenannte SSL-Reports. Ich mag den kostenfreien Service von der folgenden Webseite: www.ssllabs.com
Hier werden Informationen über das installierte Zertifikat, die Verschlüsselung und einige Sicherheitseinstellungen angezeigt. Am besten führst du nach der Installation eines SSL-Zertifikats auf deinem Raspberry Pi einen einmaligen SSL-Report durch, um die Gültigkeit unabhängig vom verwendeten Webbrowser zu validieren.