NetBird Reverse Proxy – ACME Challenge schlägt fehl ("server misbehaving")¶
Symptom¶
Der NetBird Reverse Proxy (netbirdio/reverse-proxy) kann keine TLS-Zertifikate via Let's Encrypt ausstellen. In den Proxy-Logs erscheint:
In den Traefik-Logs erscheinen keine neuen Einträge während des ACME-Vorgangs.
Ursache¶
Der Proxy-Container löst die eigene NB_PROXY_DOMAIN intern über Docker's eingebauten DNS-Resolver (127.0.0.11) auf. Dieser kann externe CNAMEs nicht zuverlässig auflösen – obwohl die Domain vom Host aus korrekt auflösbar ist.
Da NetBird's Reverse Proxy das ACME-Handling selbst übernimmt (nicht Traefik), schlägt die Domain-Auflösung beim Challenge-Versuch still fehl.
Fix¶
Option 1: DNS pro Container (empfohlen)¶
In der docker-compose.yml beim proxy-Service explizite DNS-Resolver eintragen:
proxy:
image: netbirdio/reverse-proxy:latest
container_name: netbird-proxy
dns:
- 8.8.8.8
- 1.1.1.1
# ... restliche Konfiguration
Danach neu starten:
Option 2: DNS global für Docker setzen¶
Gilt für alle Container auf dem Host:
Diagnose¶
Falls unklar ist ob DNS das Problem ist, im Container prüfen:
# Welche DNS-Server nutzt der Container?
docker exec -it netbird-proxy cat /etc/resolv.conf
# Auflösung testen (falls verfügbar)
docker exec -it netbird-proxy getent hosts deine-proxy-domain.example.com
# Vom Host aus vergleichen
nslookup deine-proxy-domain.example.com 8.8.8.8
Löst der Host auf, der Container aber nicht → DNS-Fix anwenden.
Umgebung¶
| Komponente | Version |
|---|---|
| NetBird | v0.70.4 |
| Reverse Proxy | netbirdio/reverse-proxy:latest |
| Reverse Proxy (Builtin) | Traefik |
| Challenge-Typ | tls-alpn-01 (Standard) |
Hinweise¶
- Docker's interner DNS
127.0.0.11ist nur für interne Service-Namen (Container-zu-Container) zuverlässig, nicht für externe DNS-Auflösungen mit CNAME-Chains. - Der NetBird Proxy macht ACME selbst – Traefik ist nur für TLS-Passthrough zuständig. Deshalb erscheinen bei ACME-Fehlern keine Einträge in den Traefik-Logs.
- Wildcard-Zertifikate (
*.domain.tld) sind via tls-alpn-01/http-01 nicht möglich – dafür wäre dns-01 nötig. NetBird beantragt aber pro Service eine eigene Subdomain, kein Wildcard.