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.
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.
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
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'"
} 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.
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.com → style-src, fonts.gstatic.com → font-src |
| Bilder von CDN blockiert | CDN-Domain zu img-src hinzufügen |
caddy reload sofort aktiv — ohne Downtime. 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
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'"
} caddy reload mit dem alten Caddyfile, um die Änderung sofort rückgängig zu machen. 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.