indi-allsky mit echtem SSL Zertifikat von Letsencrypt absichern

Letsencrypt LogoMeine 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:

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:

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

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

sudo crontab -e

Füge folgende Zeile hinzu, um jeden Montag um Mitternacht die Verlängerung durchzuführen:

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!