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.

Caddy · Schritt für Schritt

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.

1 Schritt 1 von 4

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.

/etc/caddy/Caddyfile header
# Caddyfile — Referrer-Policy in einer Zeile
ihre-domain.de {
    header Referrer-Policy "strict-origin-when-cross-origin"
}
/etc/caddy/Caddyfile — Alle Security-Header Empfohlen
# 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
}
Kein always-Keyword nötig

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.

2 Schritt 2 von 4

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 Matcher
# 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
3 Schritt 3 von 4

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.

Terminal Reload
# 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
Caddyfile-Standorte

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.

4 Schritt 4 von 4

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.

Terminal Verifizierung
# 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"
Mit dem Wolf-Agents Web Security Check alle Security-Header Ihrer Caddy-Site automatisch prüfen lassen — inklusive Referrer-Policy, HSTS, CSP und weiteren 160 Sicherheitskriterien.

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.