Meine Allsky-Kamera betreibe ich mit der Software indi-allsky. Diese ist von Werk mit einem SSL-Zertifikat ausgestattet, allerdings handelt es sich dabei um ein selbstsigniertes Zertifikat – solche Zertifikate werden von Browsern als unsicher eingestuft. Zusätzlich gilt das SSL-Zertifikat für die URL innerhalb des Netzwerks, in meinem Fall also allsky.local. Da ich meine Kamera aber sicher unter https://access.allsky-rodgau.de zur Verfügung stellen musste, wird ein echtes SSL-Zertifikat für diese Subdomain benötigt.
Wie man dieses Zertifikat einrichtet, ekläre ich euch jetzt. Ich nutze hierfür den Anbieter Letsencrypt – dieser bietet kostenlose SSL-Zertifikate an – und die Linux-Software certbot.
Warum der ganze Spaß? Ein SSL-Zertifikat ermöglicht die Nutzung von HTTPS, wodurch der gesamte Datenverkehr zwischen deinem Raspberry Pi und den Clients – also in diesem Fall die Webbrowser der User, die aus dem Web auf meine Kamera-Software drauf wollen – verschlüsselt wird. Dies ist besonders wichtig, wenn du Dienste oder Anwendungen über das Internet bereitstellst, um die Sicherheit der übertragenen Daten zu gewährleisten.
Schritt 1: Installation von Certbot
Zunächst loggst du dich per ssh allsky.local und deinen Zugangsdaten auf deinem Raspberry Pi mit Allsky-Software ein. Anschließend solltest du sicherstellen, dass dein System auf dem neuesten Stand ist – hierzu nutzt du den Befehl:
1 | sudo apt update && sudo apt upgrade -y |
Anschließend installierst du Certbot entsprechend deiner Server-Umgebung – im Fall von indi-allsky handelt es sich um einen Apache-Server, daher lautet der Befehl:
1 | sudo apt install python3-certbot-apache |
Schritt 2: Generierung des SSL-Zertifikats
Nachdem Certbot installiert ist, kannst du das SSL-Zertifikat generieren. Für Apache verwendest du den Befehl
1 | sudo certbot --apache |
Während des Prozesses wirst du aufgefordert:
- Deine E-Mail-Adresse anzugeben.
- Den Nutzungsbedingungen zuzustimmen.
- Deine Domain einzugeben – in meinem Fall also access.allsky-rodgau.de
Certbot konfiguriert anschließend automatisch deinen Webserver für HTTPS.
Schritt 3: Automatische Verlängerung des Zertifikats
Let’s Encrypt-Zertifikate sind 90 Tage gültig. Um eine automatische Verlängerung einzurichten, kannst du einen Cronjob erstellen. Hierzu öffnest du das Tool crontab mit dem Befehl
1 | sudo crontab -e |
Füge folgende Zeile hinzu, um jeden Montag um Mitternacht die Verlängerung durchzuführen:
1 | 0 0 * * 1 certbot renew |
Speichere die Änderungen. Damit wird dein SSL-Zertifikat regelmäßig erneuert, ohne dass du manuell eingreifen musst. Fertig.
Schritt 4 (optional): SSL-Zertifikat testen
Ob das SSL-Zertifikat sauber funktioniert, könnt ihr unter https://ssl-trust.com/SSL-Zertifikate/check testen. Seht ihr grüne Haken ist alles wunderbar!