---
title: 'OpenWrt: Zentraler Reverse Proxy & Wildcard-Zertifikat (Nginx + acme.sh)'
url: 'https://blog.ro011110ot.de/de/openwrt/zentraler-reverse-proxy-wildcard-zertifikat-nginx-acme-sh'
markdown: 'https://blog.ro011110ot.de/de/openwrt/zentraler-reverse-proxy-wildcard-zertifikat-nginx-acme-sh.md'
lang: de
date: '2026-10-05'
description: "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 Integ…"
---

# 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.sh` hinterlegt)
- **Zertifikatspfad:** `/etc/ssl/nginx/`

Ausstellung des Zertifikats auf der Konsole:

```bash
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/`:

```Bash
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:

```Bash
/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):

```Bash

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:

```Bash
micro /etc/config/nginx
```

Füge folgenden Server-Block hinzu:

```Plaintext
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:

```Bash
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:

1. **NextDNS Rewrite Rule anlegen:**

    - Subdomain eintragen (z. B. `ha.home.EXAMPLE.TLD` $\\rightarrow$ `10.133.7.1`).
2. **Nginx Server-Block in `/etc/config/nginx` ergänzen:**

    ```Plaintext
    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; }'
    ```
3. **Nginx neu laden:**

    ```Bash
    /etc/init.d/nginx restart
    ```

---

## Navigation

- Previous: [1. Domain auf `router.home.EXAMPLE.TLD` umstellen](https://blog.ro011110ot.de/de/openwrt/heimnetz-geraete-per-domain-ssl.md)
