From 4be51faa076b4df2a2486076a5e78c6a291869cf Mon Sep 17 00:00:00 2001 From: ARIA Date: Sun, 19 Jul 2026 22:37:38 +0000 Subject: [PATCH] Caddy: Host-Header beim Reverse-Proxy auf 127.0.0.1:9119 setzen (Fix Invalid Host header) Hermes' Dashboard-Backend prueft den eingehenden Host-Header gegen den Host, an den es gebunden ist -- Caddy reichte bisher den originalen Host-Header vom Browser (Server-IP/Domain) durch, was Hermes als 'Invalid Host header' ablehnte. header_up ueberschreibt den Host jetzt explizit. Plus Troubleshooting-Eintrag in der README. --- Caddyfile | 10 +++++++++- README.md | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Caddyfile b/Caddyfile index 96754bd..984ed73 100644 --- a/Caddyfile +++ b/Caddyfile @@ -17,7 +17,15 @@ {$HERMES_DASHBOARD_USER} {$CADDY_BASIC_AUTH_HASH} } - reverse_proxy 127.0.0.1:9119 + # Hermes' Dashboard-Backend validiert den eingehenden Host-Header gegen + # den Host, an den es gebunden wurde (127.0.0.1:9119) -- Schutz gegen + # DNS-Rebinding. Caddy reicht per Default den ORIGINALEN Host-Header + # vom Browser durch (die Server-IP/Domain), das lehnt Hermes mit + # "Invalid Host header" ab. Deshalb hier den Host-Header explizit auf + # das ueberschreiben, worauf das Dashboard tatsaechlich lauscht. + reverse_proxy 127.0.0.1:9119 { + header_up Host 127.0.0.1:9119 + } } # Optional-freundlich: wer versehentlich mit http:// statt https:// draufklickt, diff --git a/README.md b/README.md index 3e2ac38..3781257 100644 --- a/README.md +++ b/README.md @@ -225,6 +225,21 @@ Caddy), ist der Traffic unverschluesseltes HTTP, kein TLS. Nicht direkt ins offene Internet haengen — SSH-Tunnel, WireGuard/Tailscale oder eben den Caddy-Reverse-Proxy davorschalten. +## Troubleshooting + +**`{"detail":"Invalid Host header. Dashboard requests must use the hostname +the server was bound to."}` beim Aufruf ueber Caddy:** Hermes' Dashboard- +Backend prueft den eingehenden `Host`-Header gegen den Host, an den es +gebunden ist (`127.0.0.1:9119`) — Schutz gegen DNS-Rebinding. Caddy reicht +per Default den ORIGINALEN Host-Header vom Browser durch (Deine +Server-IP/Domain), den lehnt Hermes dann ab. Fix ist im `Caddyfile` bereits +drin: der `reverse_proxy`-Block ueberschreibt den Host-Header explizit +(`header_up Host 127.0.0.1:9119`), bevor die Anfrage ans Dashboard geht. +Falls der Fehler trotzdem auftritt: pruefen ob Dein `Caddyfile` den +`header_up`-Block im `reverse_proxy 127.0.0.1:9119 { ... }` wirklich enthaelt +(`git pull` + `docker-compose up -d --build caddy`, kein Neubuild noetig, +Caddy liest die Config beim Start neu ein). + ## Verzeichnisse (nicht committet, siehe .gitignore) - `hermes-agent-src/` — geklonter Hermes-Agent-Sourcecode (Docker-Build-Context)