CSP für Caddy konfigurieren

Content Security Policy über die Caddy header-Direktive einrichten — mit automatischem HTTPS und einfacher Caddyfile-Syntax für schnelle Konfiguration.

Caddy · Schritt für Schritt

Content Security Policy in Caddy

Caddy ist ein moderner Webserver mit automatischem HTTPS und der einfachsten Konfigurationssyntax aller Webserver — dem Caddyfile. CSP-Header setzen Sie mit einer einzigen header-Direktive. Im Gegensatz zu Nginx oder Apache brauchen Sie kein Modul zu aktivieren und keine komplexe Syntax: Caddy macht es so einfach wie möglich.

CSP ist mit 35 von 166 Punkten der einflussreichste Header im Wolf-Agents Web Security Check. Caddy hat allerdings kein natives Nonce-Modul — für dynamische Nonces muss Ihr Backend die Generierung übernehmen. Für statische Websites mit externen Scripts ist eine Hash-basierte CSP die bessere Wahl.

1 Schritt 1 von 3

Report-Only im Caddyfile

Beginnen Sie immer im Report-Only-Modus. Caddy setzt Header über die header-Direktive im Caddyfile. Verwenden Sie Content-Security-Policy-Report-Only als Header-Name, damit der Browser Violations meldet, ohne Ressourcen zu blockieren.

Caddyfile Report-Only
# Caddyfile
ihre-domain.de {
    header Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'"
}
Caddy Reload statt Restart

Nach Änderungen am Caddyfile genügt caddy reload — kein Neustart nötig. Caddy validiert die Konfiguration vor dem Laden und lehnt fehlerhafte Caddyfiles ab, ohne den laufenden Server zu beeinflussen.

2 Schritt 2 von 3

Violations analysieren und CSP anpassen

Öffnen Sie die Browser DevTools (F12) → Console. CSP-Violations erscheinen als Warnungen. Passen Sie die Policy im Caddyfile an, bis keine unerwarteten Violations mehr auftreten.

Violation Lösung
Inline-Script blockiert Hash hinzufügen oder Script in externe Datei auslagern
Externe Bibliothek blockiert Domain zu script-src hinzufügen
Google Fonts blockiert fonts.googleapis.comstyle-src, fonts.gstatic.comfont-src
Bilder von CDN blockiert CDN-Domain zu img-src hinzufügen
Lassen Sie die Policy mindestens 1 Woche im Report-Only-Modus laufen. Änderungen im Caddyfile werden mit caddy reload sofort aktiv — ohne Downtime.
3 Schritt 3 von 3

Enforcement aktivieren

Wenn keine unerwarteten Violations mehr auftreten, ändern Sie den Header-Namen im Caddyfile. Ersetzen Sie Content-Security-Policy-Report-Only durch Content-Security-Policy — ab sofort blockiert der Browser nicht autorisierte Ressourcen.

Caddyfile Enforcement
# Caddyfile
ihre-domain.de {
    header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'"
}
Testen Sie gründlich auf allen Seiten Ihrer Website. Bei Problemen genügt ein caddy reload mit dem alten Caddyfile, um die Änderung sofort rückgängig zu machen.
Nonces in Caddy — Backend erforderlich

Caddy hat kein natives Nonce-Modul. Für dynamische Nonces muss Ihr Backend (z.B. Go, Node.js, PHP) den Nonce generieren, in den CSP-Header schreiben und in <script>-Tags einfügen. Caddy leitet den vom Backend gesetzten Header durch — Sie brauchen dann keine header-Direktive im Caddyfile für CSP.

Wie steht Ihre Domain bei Content Security Policy?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.