Wer eine indi-allsky-Installation auf einem Raspberry Pi betreibt und diese über eine eigene Domain öffentlich erreichbar machen möchte, stößt schnell auf zwei typische Herausforderungen:
- Der Raspberry steckt hinter einer Fritz!Box mit dynamischer IP.
- indi-allsky bringt einen eigenen, selbstsignierten Webserver mit, der standardmäßig kein gültiges TLS-Zertifikat ausliefert.
In diesem Beitrag zeige ich die vollständige, funktionierende Lösung: Ein Let’s-Encrypt-Zertifikat für eine Subdomain wie access.allsky-rodgau.de, ausgeliefert über Apache als Reverse Proxy, inklusive funktionierender Auto-Renewal-Routine per HTTP-01-Challenge.
***Diese Anleitung wurde im Dezember 2025 aktualisiert und funktioniert bei mir einwandfrei***
1. Ausgangssituation
Das Setup besteht aus:
- Raspberry Pi mit indi-allsky
- öffentlicher Subdomain (z. B. access.allsky-rodgau.de)
- DNS bei all-inkl.com
- Fritz!Box mit DynDNS
- Apache als Reverse Proxy
Das Ziel: HTTPS-Zugriff ohne Zertifikatsfehler und automatische Verlängerung des Zertifikats.
2. Fritz!Box für den Zertifikatsabruf vorbereiten
Damit Let’s Encrypt die Domain validieren kann, muss Port 80 von extern erreichbar sein. Hierzu richten wir eine Portfreigabe bei der Fritz!Box unter Internet → Freigaben → Portfreigaben ein:
- Port 80 → Raspberry Pi
- Port 443 → Raspberry Pi
Externer Test
Mit dem Smartphone (WLAN aus) einfach:
http://access.allsky-rodgau.de
Erscheint eine Apache-Seite oder die indi-allsky-Oberfläche, ist Port 80 offen. Mittlerweile leitet die Seite von http:// automatisch auf https:// weiter – wie das geht, siehe weiter unten!
Alternativ kann man das Ganze auch unter https://www.yougetsignal.com/tools/open-ports/ testen – in meinem Fall: https://access.allsky-rodgau.de und Port 80.
3. indi-allsky kein eigenes SSL sprechen lassen
Bei Installationen über Docker besitzt indi-allsky kein eigenes HTTPS-Modul. Der interne Webserver liefert ausschließlich HTTP aus – SSL kommt immer über Apache. Bei Non-Docker-Installationen sollte SSL in indi-allsky deaktiviert sein.
Prüfen, ob indi-allsky SSL spricht:
sudo lsof -i :443
Wenn hier nur apache2 auftaucht, ist alles korrekt.
lsof muss man ggf. installieren:
sudo apt update sudo apt install lsof
4. Apache als Reverse Proxy konfigurieren
Apache liefert das Let’s-Encrypt-Zertifikat aus und leitet Anfragen intern an indi-allsky weiter.
Beispiel für /etc/apache2/sites-available/indi-allsky.conf:
<VirtualHost *:80>
ServerName access.allsky-rodgau.de
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:443>
ServerName access.allsky-rodgau.de
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/access.allsky-rodgau.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/access.allsky-rodgau.de/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
Danach aktivieren:
sudo a2enmod ssl proxy proxy_http rewrite sudo a2ensite indi-allsky.conf sudo systemctl reload apache2
5. Certbot installieren
sudo apt update sudo apt install certbot python3-certbot-apache
6. Das Let’s-Encrypt-Zertifikat korrekt erzeugen
Für automatische Verlängerung ist wichtig, das Zertifikat mit dem Apache-Plugin anzulegen, nicht per „manual“-Challenge.
sudo certbot --apache -d access.allsky-rodgau.de
Certbot:
- legt Dateien unter /etc/letsencrypt/live an
- konfiguriert Apache automatisch
- stellt auto-renewal, d.h. das automatische Aktualisieren des SSL-Zertifikats korrekt ein
7. Ausgeliefertes Zertifikat prüfen
openssl s_client -connect access.allsky-rodgau.de:443 -servername access.allsky-rodgau.de | grep "CN="
Zeigt dann…
CN = access.allsky-rodgau.de
8. Automatische Verlängerung testen
Certbot installiert automatisch einen systemd-Timer für die Erneuerung.
systemctl status certbot.timer
Trockenlauf:
sudo certbot renew --dry-run
Wenn er das hier anzeigt, hat alles geklappt:
Congratulations, all simulated renewals succeeded.
9. HTTP auf HTTPS weiterleiten
Jetzt wollen wir noch alle Anfragen, die per HTTP eingehen auf HTTPS weiterleiten. Hierfür müssen wir die Konfiguration bearbeiten:
sudo nano /etc/apache2/sites-available/indi-allsky.conf
Anschließend im Bereich die folgende Zeile ergänzen:
Redirect permanent / https://access.allsky-rodgau.de/
Damit werden alle Anfragen auf access.allsky-rodgau.de auf https weitergeleitet. Die „Challenge“ bei der automatischen SSL-Zertifikatserneuerung bleibt davon unberührt.
Funktioniert! Einfach https://access.allsky-rodgau.de aufrufen!