Skip to content

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:

server misbehaving

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:

docker compose up -d proxy && docker compose logs -f proxy

Option 2: DNS global für Docker setzen

Gilt für alle Container auf dem Host:

# /etc/docker/daemon.json
{
  "dns": ["8.8.8.8", "1.1.1.1"]
}
sudo systemctl restart docker

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.11 ist 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.