OpenWrt: Zentraler Reverse Proxy & Wildcard-Zertifikat (Nginx + acme.sh)
Diese Dokumentation beschreibt die Einrichtung eines zentralen HTTPS-Gateways auf OpenWrt unter Verwendung eines Let's Encrypt Wildcard-Zertifikats via acme.sh und dns_desec, der Ablösung von uhttpd sowie der nativen Integration von Nginx für LuCI und lokale Heimnetz-Dienste.
1. Voraussetzungen & Wildcard-Zertifikat (acme.sh)
Das Wildcard-Zertifikat deckt die Hauptdomain und alle Subdomains ab (z. B. home.EXAMPLE.TLD und *.home.EXAMPLE.TLD).
- DNS-Provider: deSEC.io (API-Token für
acme.shhinterlegt) - Zertifikatspfad:
/etc/ssl/nginx/
Ausstellung des Zertifikats auf der Konsole:
acme.sh --issue --dns dns_desec \
-d home.EXAMPLE.TLD \
-d '*.home.EXAMPLE.TLD' \
--keylength ec-256
Installation und Ablage der Zertifikate in /etc/ssl/nginx/:
acme.sh --install-cert -d home.EXAMPLE.TLD \
--fullchain-file /etc/ssl/nginx/home.EXAMPLE.TLD.fullchain.crt \
--key-file /etc/ssl/nginx/home.EXAMPLE.TLD.key
2. uhttpd komplett deaktivieren
Da Nginx als alleiniger Webserver auf den Ports 80 und 443 agieren soll, wird der Standard-Webserver uhttpd abgeschaltet:
/etc/init.d/uhttpd stop
/etc/init.d/uhttpd disable
3. Nginx für LuCI einrichten (luci-nginx)
Damit Nginx die LuCI-Oberfläche verarbeiten kann, wird das entsprechende Paket installiert (liefert die benötigten .locations-Dateien):
apk add luci-nginx
4. Nginx-Konfiguration (/etc/config/nginx)
Die zentrale Konfigurationsdatei wird um den Server-Block für die Heimnetz-Domain erweitert.
Beispiel: Router-Interface (LuCI) unter home.EXAMPLE.TLD
Öffne die Datei:
micro /etc/config/nginx
Füge folgenden Server-Block hinzu:
config server 'home'
option server_name 'home.EXAMPLE.TLD *.home.EXAMPLE.TLD'
list listen '443 ssl'
list listen '[::]:443 ssl'
option root '/www'
option ssl_certificate '/etc/ssl/nginx/home.EXAMPLE.TLD.fullchain.crt'
option ssl_certificate_key '/etc/ssl/nginx/home.EXAMPLE.TLD.key'
list include 'restrict_locally'
list include 'conf.d/*.locations'
Konfiguration testen und Nginx neu starten:
nginx -t -c /etc/nginx/uci.conf
/etc/init.d/nginx restart
5. Weitere Heimnetz-Dienste via Wildcard & Reverse Proxy einbinden
Um zusätzliche Geräte im Heimnetz (z. B. NAS, Home Assistant) über Subdomains abzusichern:
-
NextDNS Rewrite Rule anlegen:
- Subdomain eintragen (z. B.
ha.home.EXAMPLE.TLD$\rightarrow$10.133.7.1).
- Subdomain eintragen (z. B.
-
Nginx Server-Block in
/etc/config/nginxergänzen:config server 'ha' option server_name 'ha.home.EXAMPLE.TLD' list listen '443 ssl' list listen '[::]:443 ssl' option ssl_certificate '/etc/ssl/nginx/home.EXAMPLE.TLD.fullchain.crt' option ssl_certificate_key '/etc/ssl/nginx/home.EXAMPLE.TLD.key' list location '/ { proxy_pass http://10.133.8.59:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }' -
Nginx neu laden:
/etc/init.d/nginx restart