🏡🔐 Vom VPS zum Homeserver ĂŒber WireGuard: Warum die HTTP‑Challenge scheiterte – und wie die DNS‑Challenge alles löste

🏡🔐 Vom VPS zum Homeserver ĂŒber WireGuard: Warum die HTTP‑Challenge scheiterte – und wie die DNS‑Challenge alles löste

Viele Homelab‑Betreiber stehen irgendwann vor derselben Aufgabe:
Ein VPS mit öffentlicher IP soll als Eingangstor dienen, wĂ€hrend der eigentliche Homeserver sicher hinter einer Firewall lĂ€uft. Ein WireGuard‑Tunnel verbindet beide Systeme, und ein zentraler Reverse‑Proxy auf dem Homeserver soll alle Dienste bereitstellen – natĂŒrlich mit gĂŒltigen TLS‑Zertifikaten.

Klingt nach einem soliden Plan.
Doch in der Praxis stolpern viele ĂŒber denselben Fallstrick: die HTTP‑Challenge von Let’s Encrypt.

Dieser Artikel erklĂ€rt die Architektur, zeigt die typischen Fehlerquellen und beschreibt, warum die DNS‑Challenge die Lösung ist, die man von Anfang an hĂ€tte wĂ€hlen sollen.


🌐 Die geplante Architektur im Überblick

Die Idee ist elegant und sicher:

  • VPS
    • besitzt die öffentliche IP
    • nimmt Anfragen auf Port 80/443 entgegen
    • leitet sie ĂŒber WireGuard weiter
  • WireGuard‑Tunnel
    • verbindet VPS und Homeserver
    • transportiert den gesamten Web‑Traffic verschlĂŒsselt
  • Homeserver
    • hostet alle Apps (Nextcloud, Jellyfin, etc.)
    • betreibt einen zentralen Reverse‑Proxy
    • ist nicht direkt aus dem Internet erreichbar
  • OPNsense
    • schĂŒtzt das Heimnetz
    • blockiert standardmĂ€ĂŸig alle eingehenden Verbindungen
  • Caddy
    • soll automatisch TLS‑Zertifikate holen
    • soll alle Dienste ĂŒber Domains bereitstellen

Eine robuste, moderne und sichere Architektur – zumindest auf dem Papier.


🚧 Der Stolperstein: Die HTTP‑Challenge

Die HTTP‑Challenge von Let’s Encrypt funktioniert so:

  1. Let’s Encrypt ruft http://deinedomain/.well-known/acme-challenge/... auf.
  2. Dieser Request muss direkt den Server erreichen, der das Zertifikat anfordert.
  3. Der Server muss Ă¶ffentlich auf Port 80 erreichbar sein.

Und genau hier beginnt das Problem.

Warum das in dieser Architektur scheitert

  • Der Homeserver ist nicht öffentlich erreichbar.
  • OPNsense blockiert alle eingehenden Ports, auch wenn der VPS korrekt weiterleitet.
  • Der WireGuard‑Tunnel transportiert zwar Traffic, aber nur, wenn er durch die Firewall darf.
  • Der VPS kann Port 80 weiterleiten – aber OPNsense sagt: „Nein.“

Das Ergebnis:

Die HTTP‑Challenge schlĂ€gt fehl, obwohl der VPS korrekt konfiguriert ist.

Viele suchen dann am falschen Ort:

  • „Hat der VPS Ports blockiert?“
  • „Ist die Firewall im VPS aktiv?“
  • „Leitet WireGuard falsch weiter?“
  • „Ist Caddy falsch konfiguriert?“

In Wahrheit ist es viel simpler:

OPNsense blockiert Port 80 – und die HTTP‑Challenge funktioniert ohne Port 80 nicht.

đŸ§© Die Lösung: DNS‑Challenge ĂŒber Cloudflare

Die DNS‑Challenge funktioniert komplett anders:

  • Caddy erstellt einen TXT‑Record bei Cloudflare.
  • Let’s Encrypt prĂŒft nur diesen DNS‑Eintrag.
  • Der Homeserver muss nicht erreichbar sein.
  • Keine Ports mĂŒssen offen sein.
  • Keine Firewall‑Regeln nötig.
  • Kein NAT.
  • Kein Weiterleiten ĂŒber WireGuard.

Damit fÀllt die gesamte Problemkette weg.

Warum die DNS‑Challenge perfekt fĂŒr diese Architektur ist

  • Der Homeserver bleibt komplett geschlossen.
  • OPNsense muss nichts erlauben.
  • Der VPS muss keine ACME‑Ports weiterleiten.
  • Der WireGuard‑Tunnel spielt fĂŒr Zertifikate keine Rolle.
  • Caddy kann trotzdem gĂŒltige öffentliche Zertifikate ausstellen.

Kurz gesagt:

Die DNS‑Challenge ist die einzige Challenge‑Methode, die in komplexen Homelab‑Architekturen zuverlĂ€ssig funktioniert.

🧭 Der Aha‑Moment: Der VPS war nie das Problem

Viele Homelab‑Admins vermuten zuerst:

  • „Der VPS-Anbieter blockiert Ports!“
  • „Der VPS hat eine versteckte Firewall!“
  • „Der Provider lĂ€sst Port 80 nicht durch!“

Aber in Wirklichkeit:

  • Der VPS war korrekt konfiguriert.
  • Der WireGuard‑Tunnel funktionierte.
  • Caddy oder ein anderer Proxy waren bereit.
  • Cloudflare war korrekt eingerichtet.

Nur ein Glied in der Kette hat blockiert:

OPNsense hat den HTTP‑Challenge‑Traffic verworfen.

Und das ist völlig normal – eine Firewall macht genau das, wofĂŒr sie gebaut wurde.


🏁 Fazit: Was man aus diesem Setup lernt

  • Die HTTP‑Challenge ist fĂŒr Homelabs mit Firewalls, Tunneln oder Reverse‑Proxies ungeeignet.
  • Die DNS‑Challenge ist der Goldstandard, sobald ein Server nicht direkt im Internet hĂ€ngt.
  • OPNsense blockiert eingehenden Traffic, egal wie gut der Rest konfiguriert ist.
  • Der VPS war nie das Problem – die Challenge‑Methode war es.
  • Mit DNS‑Challenge wird das Setup stabil, sicher und wartungsfrei.