Erweiterte Header für Caddy konfigurieren
Schritt-für-Schritt: Origin-Agent-Cluster mit header-Direktive, HTTPS ist in Caddy automatisch aktiv, WWW-Normalisierung mit redir — mit fertigen Caddyfile-Konfigurationen.
Erweiterte Header mit Caddy
Caddy ist der einzige Webserver, der HTTPS vollständig automatisch aktiviert — einschließlich Let's Encrypt-Zertifikat und HTTP→HTTPS-Redirect. Das vereinfacht die Sicherheitskonfiguration erheblich: Sie müssen keinen Port-80-Block für Redirects anlegen. Die header-Direktive setzt und entfernt HTTP-Header in wenigen Zeilen.
Diese Anleitung zeigt drei Schritte: Origin-Agent-Cluster setzen, den Auto-HTTPS-Mechanismus verstehen und WWW-Normalisierung mit einem separaten Site-Block konfigurieren.
Origin-Agent-Cluster mit der header-Direktive setzen
Caddy verwendet die header-Direktive zum Setzen und Entfernen von Response-Headern. Ein einfacher header Name "Wert" setzt den Header. Ein Minuszeichen (-Name) entfernt den Header aus der Antwort. Beide Formen können in einem header -Block kombiniert werden.
# /etc/caddy/Caddyfile
example.com {
# Prozess-Isolation gegen Spectre
header Origin-Agent-Cluster "?1"
# Server-Header entfernen (Minuszeichen = entfernen)
header -Server
# X-XSS-Protection entfernen (falls vom Upstream gesetzt)
header -X-XSS-Protection
reverse_proxy localhost:3000
} Im Gegensatz zu Nginx benötigt Caddy kein always-Schlüsselwort. Die header-Direktive in Caddy gilt standardmäßig für alle Antworten — einschließlich Fehlerseiten.
Auto-HTTPS — eingebaut, kein Redirect nötig
Caddy aktiviert HTTPS automatisch für alle Domains, die im Caddyfile angegeben werden. Es holt automatisch ein Let's Encrypt-Zertifikat (via ACME-Protokoll) und leitet HTTP-Anfragen mit einem 301 auf HTTPS um — ohne eine einzige Konfigurationszeile dafür.
# Caddy aktiviert HTTPS automatisch — kein Redirect nötig!
# Einfach die Domain angeben:
example.com {
# Caddy holt automatisch ein Let's Encrypt-Zertifikat
# HTTP → HTTPS 301 wird automatisch eingerichtet
header Origin-Agent-Cluster "?1"
reverse_proxy localhost:3000
}
# Auto-HTTPS deaktivieren (nur wenn nötig):
# example.com:80 { ... } oder auto_https off (global) | Webserver | HTTPS-Redirect | Zertifikat |
|---|---|---|
| Caddy | Automatisch (kein Code) | Automatisch (Let's Encrypt) |
| Nginx | Manuell (Server-Block) | Manuell (certbot) |
| Apache | Manuell (RewriteRule) | Manuell (certbot) |
WWW-Normalisierung mit redir
Für WWW-Normalisierung legen Sie einen separaten Site-Block für www.example.com an. Die redir-Direktive mit dem Schlüsselwort permanent sendet einen 301-Redirect. Caddy holt auch für den www-Block automatisch ein HTTPS-Zertifikat.
# WWW → non-WWW Redirect (separater Site-Block)
www.example.com {
# Permanenter 301 Redirect auf non-www
redir https://example.com{uri} permanent
}
example.com {
header Origin-Agent-Cluster "?1"
header -Server
header -X-XSS-Protection
reverse_proxy localhost:3000
}
# Caddy holt Zertifikate für BEIDE Domains automatisch! # Vollständiges Caddyfile mit allen erweiterten Headern
www.example.com {
redir https://example.com{uri} permanent
}
example.com {
# Sicherheitsheader setzen
header {
Origin-Agent-Cluster "?1"
# Header entfernen (- Prefix)
-Server
-X-Powered-By
-X-XSS-Protection
}
reverse_proxy localhost:3000
}
# Testen: caddy validate --config /etc/caddy/Caddyfile
# Reload: systemctl reload caddy systemctl reload caddy oder caddy reload. Nach dem Reload wird die Konfiguration sofort aktiv — laufende Verbindungen werden nicht unterbrochen. Wie steht Ihre Domain bei Erweiterte Header?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.
Häufig gestellte Fragen
Wie setze ich Origin-Agent-Cluster in Caddy?
Mit der header-Direktive im Caddyfile: header Origin-Agent-Cluster "?1". Diese Zeile im Site-Block platziert setzt den Header für alle Antworten. Caddy propagiert Header automatisch — kein "always"-Schlüsselwort wie in Nginx nötig.
Muss ich in Caddy einen HTTPS-Redirect manuell konfigurieren?
Nein. Caddy aktiviert HTTPS automatisch und leitet HTTP-Anfragen mit einem 301-Redirect auf HTTPS um — ohne jede Konfiguration. Das ist eine der Kernfunktionen von Caddy (Automatic HTTPS). Wenn Sie eine Domain im Caddyfile angeben, holt Caddy automatisch ein Let's Encrypt-Zertifikat.
Wie entferne ich den Server-Header in Caddy?
Mit header -Server im Caddyfile: Das Minuszeichen vor dem Header-Namen entfernt den Header aus allen Antworten. Caddy sendet standardmäßig Server: Caddy — mit header -Server können Sie dies entfernen. header ?X-Powered-By entfernt den Header nur wenn vorhanden (bedingte Entfernung).
Was ist der Unterschied zwischen header und respond in Caddy?
header modifiziert Response-Header für Anfragen, die an den Upstream weitergeleitet werden. respond sendet direkt eine Antwort ohne Upstream — nützlich für einfache Redirects. Für Sicherheitsheader nutzen Sie header, für direkte Weiterleitungen redir oder respond.
Funktioniert Caddys Auto-HTTPS auch für Subdomains?
Ja. Für jede im Caddyfile definierte Domain/Subdomain holt Caddy automatisch ein Zertifikat. Für Wildcard-Zertifikate benötigen Sie DNS-01-Challenge (nicht HTTP-01) — das erfordert einen DNS-Provider mit Caddy-Plugin (z.B. cloudflare, hetzner).
Kann ich Caddy als Reverse Proxy mit Security-Headern nutzen?
Ja. Caddy ist ein vollständiger Reverse Proxy. header-Direktiven gelten auch für Antworten, die vom Upstream stammen. Bei reverse_proxy können Sie header_down (Upstream-Antworten modifizieren) und header_up (Request-Header an Upstream) separat konfigurieren.
Wie teste ich die Caddy-Konfiguration vor dem Reload?
Mit caddy validate --config /etc/caddy/Caddyfile prüfen Sie die Syntax. Dann caddy reload oder systemctl reload caddy für einen unterbrechungsfreien Reload. Caddy unterstützt auch caddy adapt für die Validierung von JSON-Konfigurationen.