Referrer-Policy für Caddy konfigurieren
Schritt-für-Schritt-Anleitung: Referrer-Policy mit einer Zeile im Caddyfile setzen — der einfachste Weg aller Webserver-Stacks, mit Auto-HTTPS und ohne always-Keyword.
Referrer-Policy auf Caddy
Caddy bietet die einfachste Syntax aller Webserver für Security-Header: Eine Zeile im Caddyfile genügt. Anders als bei Nginx entfällt das always-Keyword — Caddy setzt Header standardmäßig für alle Responses. Auto-HTTPS über Let's Encrypt ist im Lieferumfang enthalten.
Diese Anleitung zeigt die Konfiguration in vier Schritten: vom Ein-Zeilen-Header über das Bündeln aller Security-Header in einem Block bis zu pfadspezifischen Policies mit Matchern.
header-Direktive im Caddyfile
Die header-Direktive in Caddy ist die direkteste Methode zum Setzen von HTTP-Headern. Sie gilt für alle Requests innerhalb des Site-Blocks — für Fehler-Responses genauso wie für erfolgreiche Antworten. Eine Zeile reicht für die Referrer-Policy.
# Caddyfile — Referrer-Policy in einer Zeile
ihre-domain.de {
header Referrer-Policy "strict-origin-when-cross-origin"
} # Caddyfile — Alle empfohlenen Security-Header
ihre-domain.de {
# HTTPS wird automatisch konfiguriert (Let's Encrypt)
header {
Referrer-Policy "strict-origin-when-cross-origin"
X-Content-Type-Options "nosniff"
X-Frame-Options "SAMEORIGIN"
Strict-Transport-Security "max-age=31536000; includeSubDomains"
Permissions-Policy "camera=(), microphone=(), geolocation=()"
# Server-Header unterdrücken
-Server
}
root * /var/www/html
file_server
} Anders als bei Nginx benötigt Caddy kein always-Keyword. Die header-Direktive gilt standardmäßig für alle HTTP-Responses — inklusive Fehlerantworten. Das ist ein wesentlicher Vorteil von Caddys Konfigurationssprache.
Syntax und Optionen
Caddy unterstützt Matcher für pfadspezifische Header-Konfiguration. Mit @matcher können Sie bestimmte Pfade oder Bedingungen definieren und für diese eine abweichende Referrer-Policy setzen. Das ist die Caddy-idiomatische Methode für Route-spezifische Policies.
# Caddyfile — Pfadspezifische Policies mit Matchern
ihre-domain.de {
# Matcher für Admin-Bereich definieren
@admin path /admin/*
# Strengere Policy für /admin/*
header @admin Referrer-Policy "no-referrer"
# Standard-Policy für alle anderen Pfade
header Referrer-Policy "strict-origin-when-cross-origin"
header X-Content-Type-Options "nosniff"
reverse_proxy localhost:3000
} Caddy header-Direktive Übersicht
| Syntax | Wirkung | Anwendungsfall |
|---|---|---|
header Name Wert | Header hinzufügen oder überschreiben | Standard-Security-Header |
header -Name | Header aus Response entfernen | Server-Header unterdrücken |
header @matcher Name Wert | Header nur für matched Requests | Pfadspezifische Policies |
caddy reload
Caddy bietet caddy reload für nahtlose Konfigurationsänderungen ohne Downtime. Im Gegensatz zu Nginx und Apache prüft Caddy die Konfiguration automatisch vor dem Reload. Prüfen Sie dennoch zuerst mit caddy validate.
# Konfiguration prüfen
caddy validate --config /etc/caddy/Caddyfile
# Caddy neu laden (ohne Downtime)
caddy reload --config /etc/caddy/Caddyfile
# Oder via systemd:
sudo systemctl reload caddy Das Caddyfile liegt typischerweise in /etc/caddy/Caddyfile (systemd-Installation) oder im Arbeitsverzeichnis bei manueller Installation. Bei Docker-Setups ist es oft eingebunden als Volume. Prüfen Sie mit caddy environ die aktive Konfigurationsdatei.
Konfiguration verifizieren
Nach dem Reload prüfen Sie mit curl, ob der Header korrekt geliefert wird. Da Caddy Header standardmäßig für alle Responses setzt, können Sie auch eine nicht existierende URL testen — der Header sollte auch bei 404-Responses erscheinen.
# Referrer-Policy Header prüfen
curl -sI https://ihre-domain.de | grep -i referrer-policy
# Erwartete Ausgabe:
# Referrer-Policy: strict-origin-when-cross-origin
# Alle Security-Header auf einmal prüfen:
curl -sI https://ihre-domain.de | grep -iE "referrer|x-frame|x-content|strict-transport" Wie steht Ihre Domain bei Referrer-Policy?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.
Häufig gestellte Fragen
Wie setze ich die Referrer-Policy in Caddy?
Fügen Sie in Ihrem Caddyfile header Referrer-Policy "strict-origin-when-cross-origin" in den entsprechenden Site-Block ein. Eine Zeile reicht. Caddy setzt den Header automatisch für alle Requests der Domain — keine Module, keine Plugins.
Was ist der Vorteil von Caddy gegenüber Nginx/Apache für Security-Header?
Caddy hat die einfachste Syntax für Header-Konfiguration: eine Zeile im Caddyfile. Außerdem aktiviert Caddy HTTPS automatisch über Let's Encrypt — ohne manuelle Zertifikatskonfiguration. Das macht Caddy besonders für neue Server und Entwickler-Setups attraktiv.
Gilt der Header auch für Fehlerantworten in Caddy?
Ja. Caddys header-Direktive gilt standardmäßig für alle Responses — inklusive Fehlerantworten (4xx, 5xx). Im Gegensatz zu Nginx brauchen Sie kein "always"-Keyword. Das ist Caddys Standard-Verhalten.
Kann ich verschiedene Policies für verschiedene Pfade setzen?
Ja. Nutzen Sie Caddy-Matcher: @admin path /admin/* — dann header @admin Referrer-Policy "no-referrer" für den Admin-Bereich und header Referrer-Policy "strict-origin-when-cross-origin" für den Rest. Matcher-spezifische Direktiven haben Vorrang vor allgemeinen.
Wie lade ich die Caddy-Konfiguration neu ohne Downtime?
Mit caddy reload (wenn systemd läuft: systemctl reload caddy). Caddy prüft die neue Konfiguration automatisch und wendet sie an — ohne bestehende Verbindungen zu unterbrechen. Prüfen Sie vorher die Syntax mit caddy validate --config /etc/caddy/Caddyfile.
Funktioniert header auch bei Caddy als Reverse Proxy?
Ja. Die header-Direktive gilt für alle Caddy-Betriebsarten — statischer Dateiserver, Reverse Proxy und API-Gateway. Sie modifiziert die Antwort an den Client, bevor sie Caddy verlässt, unabhängig vom Origin.
Kann ich den Header auch über die Caddy JSON-API setzen?
Ja. Caddy bietet eine REST-API für dynamische Konfigurationsänderungen. Der Header kann über die API gesetzt werden, ohne das Caddyfile zu bearbeiten. Für die meisten Setups ist das Caddyfile jedoch die einfachere Methode.