Das Wichtigste in 30 Sekunden

  • HTTPS verschlüsselt den Transportweg zwischen Browser und Server. Ohne es liest jeder mit, der sich in die Verbindung einklinkt.
  • Ein gültiges Zertifikat von Let’s Encrypt ist kostenlos und reicht für die meisten Unternehmenswebsites vollständig aus.
  • Sicherheitsheader wie HSTS, CSP und X-Content-Type-Options bilden eine zweite Schutzschicht, die ein Zertifikat allein nicht liefert.
  • Fünf HTTP-Anweisungen lassen sich in der .htaccess in wenigen Minuten setzen und schließen die häufigsten Angriffspfade.

Das Schloss-Symbol in der Adresszeile kennt fast jeder. Was dahintersteckt, bleibt meistens unklar: SSL und HTTPS verschlüsseln den Transportweg, sagen aber nichts darüber aus, wie sich die Website gegenüber dem Browser verhält. Sicherheitsheader füllen diese Lücke. Was genau dahintersteckt, wo der typische Konfigurationsfehler sitzt und was die fünf wichtigsten Header konkret bewirken, steht in den folgenden Abschnitten.

Was HTTPS wirklich bedeutet

Kurz gesagt: HTTPS ist HTTP mit einer verschlüsselten Verbindungsschicht. Der Buchstabe S steht für Secure. Daten zwischen Browser und Server laufen durch einen Kanal, den Dritte nicht lesen können, selbst wenn sie den Netzwerkverkehr mitschneiden.

Stellen Sie sich vor, jemand schickt eine Postkarte. Jeder, der die Postkarte in die Hand nimmt, kann mitsehen. Eine Website ohne HTTPS funktioniert so: Formulardaten, Passwörter, Seiteninhalt wandern als Klartext durch das Netz. Wer sich in das WLAN des Cafés oder den Router des Unternehmens einklinkt, liest mit.

HTTPS steckt die Postkarte in einen versiegelten Umschlag. Der Inhalt bleibt privat, auch wenn das Paket an mehreren Stationen vorbeiläuft.

Technisch heißt das Protokoll seit Jahren nicht mehr SSL, sondern TLS (Transport Layer Security). TLS 1.2 und TLS 1.3 sind die aktuellen Versionen. Der Begriff SSL hält sich hartnäckig im Sprachgebrauch, auch auf Hosting-Paketen und in Anleitungen, obwohl das ursprüngliche SSL-Protokoll längst abgelöst wurde. Was Ihr Hosting-Anbieter als SSL-Zertifikat anbietet, ist in Wirklichkeit ein TLS-Zertifikat. Das ist praktisch wichtig, wenn Sie einen Server selbst konfigurieren: TLS 1.0 und TLS 1.1 gelten als unsicher und sind von allen aktuellen Browsern abgeschaltet.

SSL-Zertifikat: Was es ist, wo man es bekommt

Das Zertifikat ist der Schlüssel für die verschlüsselte Verbindung. Ruft ein Browser Ihre Website auf, prüft er, ob der Server ein gültiges Zertifikat besitzt. Stimmt alles, baut er den verschlüsselten Kanal auf. Das Zertifikat stellt eine Zertifizierungsstelle (Certificate Authority, kurz CA) aus. Sie verbürgt sich dafür, dass der Server tatsächlich zu der Domain gehört, für die das Zertifikat ausgestellt ist.

Für die meisten Unternehmenswebsites gilt: ein Domain-Validated-Zertifikat (DV) reicht aus. Die Zertifizierungsstelle prüft nur, ob der Antragsteller die Domain kontrolliert. Das ist der Standard für Unternehmenswebsites und Onlineshops.

Extended-Validation-Zertifikate (EV) prüfen zusätzlich die Identität des Unternehmens. In Browsern sind sie kaum noch sichtbar, seit Chrome und Firefox die grüne Adressleiste abgeschafft haben. Der Mehraufwand lohnt sich für normale Unternehmenswebsites nicht.

Let’s Encrypt: kostenlose Zertifikate für alle

Let’s Encrypt stellt seit 2015 kostenlose DV-Zertifikate aus. Alle großen Browser akzeptieren sie ohne Einschränkung. Heute nutzen weltweit hunderte Millionen Domains Let’s Encrypt (Stand 2024, laut den Jahresberichten der ISRG). Fast alle Hosting-Anbieter aktivieren es auf Knopfdruck oder vollautomatisch.

Ein Let’s Encrypt-Zertifikat ist 90 Tage gültig. Der Gedanke dahinter: kürzere Laufzeiten begrenzen den Schaden, wenn ein Zertifikat kompromittiert wurde. In der Praxis bedeutet das, dass die Verlängerung automatisiert laufen muss. Wer das vergisst oder dessen Hosting-Provider die Automatisierung nicht korrekt eingerichtet hat, bekommt nach 90 Tagen eine Sicherheitswarnung im Browser statt einer Website.

Warum ein Zertifikat allein nicht reicht

Ein gültiges Zertifikat verschlüsselt den Transport. Es sagt aber nichts darüber aus, wie die Website sich gegenüber dem Browser verhält. Drei Probleme bleiben bestehen.

Mixed Content: wenn ein Teil der Seite noch HTTP lädt

Gemischte Inhalte entstehen, wenn eine Seite selbst über HTTPS ausgeliefert wird, aber einzelne Ressourcen wie Bilder, Skripte oder Stylesheets noch über HTTP nachlädt. Das passiert häufig bei alten WordPress-Installationen, die vor der HTTPS-Umstellung erstellt wurden und deren Inhalte noch mit absoluten HTTP-Links gespeichert sind.

Moderne Browser blockieren aktive Mixed-Content-Ressourcen wie JavaScript und CSS. Bilder werden manchmal noch geladen, aber mit einer Warnung. Das Ergebnis ist eine Seite, die teils kaputt wirkt, oder eine Meldung in der Entwicklerkonsole, die verunsichert.

Das erste Verbindungs-Zeitfenster ohne HSTS

Tippt ein Besucher nur den Domainnamen ein, ohne https:// voranzustellen, schickt der Browser zunächst eine unverschlüsselte Anfrage. Der Server antwortet mit einer Weiterleitung auf HTTPS. In diesem kurzen Zeitfenster hat ein Angreifer im gleichen Netzwerk die Möglichkeit, die Anfrage abzufangen, bevor die Weiterleitung greift. Das nennt sich SSL-Strip-Angriff.

Browser-Verhalten ohne Anweisungen

Ein Browser weiß ohne zusätzliche Anweisungen nicht, ob er Ihre Website in einem fremden iFrame einbetten darf oder welchen Quellen er beim Nachladen von Skripten vertrauen soll. Beides sind reale Angriffspfade. Sicherheitsheader liefern diese Anweisungen.

Die wichtigsten Sicherheitsheader erklärt

Sicherheitsheader sind Zeilen im HTTP-Response-Header, die der Webserver mit jeder Antwort mitschickt. Der Browser liest sie und richtet sein Verhalten danach aus. Sie sind in wenigen Minuten gesetzt und kosten keine spürbare Performance.

HSTS (HTTP Strict Transport Security)

Kurz gesagt: HSTS weist den Browser an, diese Domain ausnahmslos über HTTPS aufzurufen, auch wenn jemand http:// eintippt. Der Browser merkt sich diese Anweisung für die gesamte angegebene Dauer.

Sobald ein Browser die Anweisung Strict-Transport-Security: max-age=31536000 einmal gesehen hat, ignoriert er künftige HTTP-Anfragen an diese Domain und baut direkt eine HTTPS-Verbindung auf. Das Zeitfenster für SSL-Strip-Angriffe schließt sich. MDN erklärt den vollständigen HSTS-Header inklusive der Parameter includeSubDomains und preload.

Wer includeSubDomains setzt, erklärt alle Subdomains als HTTPS-Only. Das ist sinnvoll, aber setzt voraus, dass wirklich alle Subdomains HTTPS unterstützen. Wer zusätzlich in die HSTS-Preload-Liste eingetragen werden will, braucht preload und muss die Voraussetzungen des Preload-Dienstes erfüllen. Der Eintrag sorgt dafür, dass Browser die HTTPS-Pflicht kennen, noch bevor sie die Website überhaupt das erste Mal aufgerufen haben.

Content Security Policy (CSP)

Kurz gesagt: CSP legt fest, aus welchen Quellen ein Browser Skripte, Stile, Bilder und andere Ressourcen laden darf. Eingeschleuster Schadcode kann so keine externen Ressourcen nachladen.

Die Content Security Policy ist der mächtigste und zugleich aufwändigste Sicherheitsheader. Eine sauber konfigurierte CSP erschwert Cross-Site-Scripting (XSS) erheblich, weil ein Angreifer, der es schafft, Schadcode in die Seite einzuschleusen, diesen Code aus keiner nicht erlaubten Quelle heraus ausführen kann. MDN führt alle CSP-Direktiven auf.

Die Herausforderung liegt in der Abstimmung. Eine zu enge Policy bricht legitime Funktionen, etwa wenn WordPress-Plugins Skripte von externen CDNs laden. Eine zu weite Policy (unsafe-inline, unsafe-eval) bringt kaum Schutz. Für WordPress-Installationen mit mehreren Plugins empfiehlt sich der Einstieg über den Mozilla Observatory: Er zeigt, welche CSP-Lücken die größte Wirkung hätten, und liefert Vorschläge.

X-Frame-Options

Kurz gesagt: Dieser Header verhindert, dass Ihre Website in einem unsichtbaren iFrame eingebettet wird. Angreifer nutzen das für Clickjacking: Der Besucher glaubt, auf Ihrer Seite zu klicken, trifft aber das manipulierte Element darunter.

Der Wert DENY verbietet jegliche Einbettung in iFrames. SAMEORIGIN erlaubt Einbettung nur aus der eigenen Domain. Für die meisten Websites ist SAMEORIGIN die richtige Wahl, weil manche eingebetteten Tools (Video-Player, Karten) auf derselben Domain laufen. MDN beschreibt X-Frame-Options vollständig. Hinweis: Die modernere Alternative ist die CSP-Direktive frame-ancestors, die flexibler konfigurierbar ist. X-Frame-Options wird von älteren Browsern verstanden und bleibt deshalb als Ergänzung sinnvoll.

X-Content-Type-Options

Kurz gesagt: Mit dem Wert nosniff verhindert dieser Header, dass Browser Dateien anders interpretieren als der Server es deklariert. Ohne ihn könnte ein Browser eine als Bild getarnte JavaScript-Datei ausführen.

MIME-Sniffing ist das Verhalten, bei dem ein Browser den Inhalt einer Datei analysiert und selbst entscheidet, was für ein Dateityp es ist, unabhängig davon, was der Server im Content-Type-Header angibt. Das war ursprünglich als Komfortfunktion gedacht, öffnet aber Angriffspfade. MDN erklärt X-Content-Type-Options mit dem einzigen gültigen Wert nosniff. Dieser Header ist in wenigen Sekunden gesetzt und hat keine bekannten Nebenwirkungen.

Referrer-Policy

Kurz gesagt: Die Referrer-Policy steuert, welche Informationen der Browser beim Klick auf externe Links über die Herkunftsseite preisgibt. Ohne diese Anweisung sendet der Browser die vollständige URL Ihrer Seite als Referrer mit.

Das ist eine DSGVO-relevante Einstellung. Die vollständige URL kann interne Strukturen verraten, zum Beispiel Suchparameter oder Verzeichnisnamen, die für Dritte nicht gedacht sind. Der Wert strict-origin-when-cross-origin sendet bei seiteninternen Links die vollständige URL, bei externen Links nur den Ursprung (also nur https://www.ihre-domain.de ohne Pfad). MDN listet alle Referrer-Policy-Werte auf. Dieser Wert ist seit einigen Jahren der Browser-Standard, es schadet aber nicht, ihn explizit zu setzen.

Permissions-Policy

Kurz gesagt: Die Permissions-Policy beschränkt, auf welche Browser-Funktionen eine Seite und eingebettete iFrames zugreifen dürfen. Dazu zählen Kamera, Mikrofon, Standort, aber auch Funktionen wie payment oder fullscreen.

Für die meisten Unternehmenswebsites ohne Video-Konferenz-Tool oder Geolokalisierung ist die Empfehlung einfach: alle nicht benötigten Funktionen deaktivieren. MDN beschreibt Permissions-Policy vollständig. Das minimiert den Angriffsbereich eingebetteter Inhalte, etwa wenn ein iFrame aus einer kompromittierten Quelle versucht, auf die Kamera zuzugreifen.

Übersicht: Header, Schutz und Beispielwert

Header Schützt vor Empfohlener Beispielwert
Strict-Transport-Security SSL-Strip-Angriffe, unverschlüsselten Erstkontakt max-age=31536000; includeSubDomains
Content-Security-Policy XSS, unerwünschte externe Ressourcenquellen default-src 'self'; script-src 'self' (anpassen nötig)
X-Frame-Options Clickjacking über unsichtbare iFrames SAMEORIGIN
X-Content-Type-Options MIME-Sniffing, getarnte Schadcode-Dateien nosniff
Referrer-Policy Datenweitergabe an externe Seiten, DSGVO-Risiken strict-origin-when-cross-origin
Permissions-Policy Unbefugter Zugriff auf Kamera, Mikrofon, Standort camera=(), microphone=(), geolocation=()

Profi-Block: Sicherheitsheader in der .htaccess

Auf Apache-Servern, also dem Standard bei den meisten deutschen Shared-Hosting-Anbietern, lassen sich alle Header über die .htaccess im Webroot setzen. Voraussetzung ist, dass mod_headers aktiv ist, was bei fast allen Hostern der Fall ist.

Direkt umsetzbar

Fertiges Sicherheitsheader-Set für die .htaccess

Diese Zeilen kommen bei Apache (Standard bei den meisten deutschen Hostern) in die .htaccess im Webroot. Reihenfolge in der Praxis: erst X-Frame-Options und Referrer-Policy, dann HTTPS prüfen, dann HSTS, die CSP ganz zuletzt und nur im Report-Only-Modus.

# HTTPS erzwingen
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Sicherheitsheader
<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
  Header always set X-Frame-Options "SAMEORIGIN"
  Header always set X-Content-Type-Options "nosniff"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=()"
  # CSP erst im Report-Only-Modus testen, dann scharf schalten:
  # Header always set Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self' 'unsafe-inline'"
</IfModule>

Das Set nutzen Sie frei. Wenn wir Ihre Header inklusive einer passenden Content Security Policy sauber einrichten und gegen den Live-Betrieb testen sollen, übernehmen wir das in der laufenden Betreuung.

Ein Hinweis zur CSP: Die Zeile ist absichtlich auskommentiert. Eine Content Security Policy, die ohne vorherige Analyse gesetzt wird, bricht fast immer etwas. Der richtige Weg ist der Content-Security-Policy-Report-Only-Modus: Er protokolliert Verstöße, ohne sie zu blockieren. So sehen Sie, welche Quellen Ihre Website tatsächlich nutzt, bevor Sie die Einschränkungen scharf schalten. Das OWASP Secure Headers Project dokumentiert Best Practices für jeden Header mit Begründungen.

Das BSI empfiehlt in der Technischen Richtlinie TR-02102 explizit TLS 1.2 und TLS 1.3 und rät von TLS 1.0, 1.1 und SSL 3.0 ab. Die Header-Konfiguration ergänzt diese Transportebene auf der Anwendungsebene.

Wie dringend ist das wirklich?

Ein fehlender Sicherheitsheader ist nicht automatisch ein kritisches Loch. Scanner und Penetrationstest-Werkzeuge melden fehlende Header reflexhaft, doch der tatsächliche Schweregrad hängt vom Kontext ab. In etablierten Bug-Bounty-Programmen werden Meldungen über rein fehlende Header oft gar nicht erst angenommen, solange niemand einen praktischen Angriff damit zeigt. Für Ihre Website heißt das: Sicherheitsheader sind eine günstige, sinnvolle Härtung, aber kein Grund zur Panik, wenn einer fehlt. Gewichten Sie sie als Teil der Gesamthärtung, nicht als isolierten Notfall.

Praxisbeispiel: Was ein Header-Check aufdeckt

In einem Projekt für einen mittelständischen Dienstleister im Gesundheitsbereich haben wir den Mozilla Observatory-Test zum ersten Mal durchgeführt. Die Website hatte ein gültiges Let’s Encrypt-Zertifikat und eine funktionierende HTTPS-Weiterleitung. Der Observatory-Score: D+. Kein einziger Sicherheitsheader war gesetzt.

Das bedeutete konkret: Jeder externe Anbieter, der einen Script-Tag in die Seite setzen konnte (damals ein veraltetes Google-Analytics-Plugin), hätte theoretisch Schadcode aus beliebigen Quellen nachladen können. X-Frame-Options fehlte ebenfalls, die Seite war für Clickjacking-Angriffe offen. Die Behebung dauerte eine halbe Stunde: .htaccess anpassen, CSP im Report-Only-Modus starten, eine Woche Logs auswerten, dann scharf schalten. Endergebnis: Observatory-Score A.

Für den Kunden hatte das einen konkreten Effekt: Das Sicherheits-Audit des Unternehmensverbands, das kurz danach stattfand, lobte explizit die Header-Konfiguration. Ähnliche Schritte empfehlen wir auch im Ratgeber zu Sicherheits-Plugins für WordPress.

Häufige Fehler im Betrieb

Die meisten Sicherheitsprobleme entstehen nicht durch das Fehlen eines Zertifikats, sondern durch Konfigurationsfehler oder mangelnde Pflege.

Abgelaufene Zertifikate

Let’s Encrypt-Zertifikate sind 90 Tage gültig. Let’s Encrypt sendet Erinnerungsemails, wenn eine Verlängerung aussteht. Aber wer verlässt sich schon auf E-Mails? Die automatische Verlängerung per Certbot oder über den Hosting-Provider ist die einzig zuverlässige Lösung. Fällt das System aus, ohne dass es jemand bemerkt, sieht der nächste Besucher eine Sicherheitswarnung statt der Website. Für diesen Fall helfen regelmäßige Backups, wie sie die WordPress-Backup-Strategie beschreibt.

Falsch konfigurierte Weiterleitungen

Wenn HTTP-Anfragen nicht sauber auf HTTPS landen oder wenn www- und non-www-Version parallel über HTTPS erreichbar sind, entstehen mehrere Probleme gleichzeitig: Suchmaschinen sehen doppelten Inhalt, Rankingsignale werden aufgeteilt, und HSTS greift nicht einheitlich. Die Weiterleitung muss konsequent und als 301 (dauerhaft) laufen.

Veraltete TLS-Versionen

Ein Server, der noch TLS 1.0 oder 1.1 unterstützt, hat faktisch eine kaputte Verschlüsselung für Clients, die diese Versionen nutzen. Aktuelle Browser verweigern TLS 1.0/1.1 bereits, aber ältere Systeme oder APIs greifen noch darauf zurück. SSL Labs zeigt, welche Protokollversionen Ihr Server anbietet.

HSTS ohne vorherige Überprüfung gesetzt

Wer HSTS mit einer langen max-age setzt, bevor alle Subdomains sauber HTTPS unterstützen, sperrt sich selbst aus. Der Browser merkt sich die Anweisung für die gesamte Laufzeit und verweigert dann HTTP-Verbindungen zu jeder Subdomain, auch zu solchen, für die kein Zertifikat existiert. Deshalb: erst prüfen, dann setzen.

Wenn eine Website trotz allem kompromittiert wird, hilft ein klarer Plan: Unser Ratgeber Website gehackt: der Notfallplan führt durch die wichtigsten Schritte.

So prüfen Sie Ihren Stand

Zwei kostenlose Werkzeuge liefern in wenigen Sekunden ein klares Bild.

Mozilla Observatory prüft Sicherheitsheader und HTTPS-Konfiguration und gibt eine Schulnote von A+ bis F. Der Test ist öffentlich einsehbar und wird von Mozilla gepflegt, einer der verlässlichsten Quellen für Websicherheits-Empfehlungen.

SSL Labs von Qualys analysiert die TLS-Konfiguration des Servers tiefer: welche Protokollversionen aktiv sind, welche Cipher Suites angeboten werden und ob bekannte Schwachstellen vorliegen. Bewertung A oder besser ist der Maßstab.

Beide Tests lassen sich kostenlos und ohne Anmeldung nutzen. Eine Domain eingeben, 30 Sekunden warten, Ergebnis lesen. Wenn Sie wissen möchten, was die Zahlen für Ihre Website konkret bedeuten und welche Schritte als nächstes sinnvoll sind, schauen Sie sich unseren Website-Check an. Die DSGVO-konforme Website hat ebenfalls einen Bezug zur Sicherheitskonfiguration, besonders was Referrer-Policy und Datenweitergabe betrifft. Und wer Zugänge zum System selbst absichern will, findet dazu alles im Ratgeber WordPress-Zugänge absichern.

Sofort-Checkliste

  • Läuft die Website ausnahmslos über HTTPS, auch bei direkter Eingabe von http://?
  • Ist das Zertifikat gültig und läuft die automatische Verlängerung?
  • Gibt es Mixed-Content-Warnungen in der Browser-Konsole (F12)?
  • Ist der HSTS-Header gesetzt (Strict-Transport-Security)?
  • Sind X-Frame-Options, X-Content-Type-Options und Referrer-Policy gesetzt?
  • Wurde die CSP zumindest im Report-Only-Modus getestet?
  • Sind TLS 1.0 und TLS 1.1 auf dem Server deaktiviert?
  • Hat der Mozilla Observatory-Test ein Ergebnis von B oder besser geliefert?
Das Wichtigste zum Mitnehmen

  • HTTPS verschlüsselt den Transport, sagt aber nichts über das Verhalten der Website aus. Sicherheitsheader liefern die zweite Schutzschicht.
  • Let’s Encrypt-Zertifikate sind kostenlos, von allen Browsern akzeptiert und reichen für die meisten Unternehmenswebsites aus. Die automatische Verlängerung muss eingerichtet sein.
  • Fünf Header (HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy) lassen sich in wenigen Minuten in der .htaccess setzen. Die CSP braucht mehr Analyse und sollte erst im Report-Only-Modus getestet werden.
  • Mozilla Observatory und SSL Labs zeigen in Sekunden, wo die eigene Website steht. Ein Score unter B ist ein Signal, das Handlungsbedarf hat.

Häufige Fragen

Was ist der Unterschied zwischen SSL und TLS?

SSL (Secure Sockets Layer) war der ursprüngliche Name des Verschlüsselungsprotokolls. TLS (Transport Layer Security) ist die modernisierte Nachfolgeversion. Aktuell im Einsatz sind TLS 1.2 und TLS 1.3. SSL 2.0, SSL 3.0 sowie TLS 1.0 und 1.1 gelten als unsicher und werden von keinem aktuellen Browser mehr unterstützt. Der Begriff SSL hat sich im Sprachgebrauch festgesetzt, meint heute aber immer TLS.

Muss ich für ein SSL-Zertifikat zahlen?

Nein. Let’s Encrypt stellt kostenlose Zertifikate aus, die alle Browser akzeptieren und die für die meisten Unternehmenswebsites vollständig ausreichen. Viele Hosting-Anbieter aktivieren Let’s Encrypt automatisch. Kostenpflichtige Zertifikate bieten erweiterte Validierungsstufen oder vereinfachte Verwaltung für viele Domains, sind aber kein Sicherheitsgewinn gegenüber einem korrekt eingerichteten Let’s Encrypt-Zertifikat.

Verlangsamen Sicherheitsheader die Website?

Nein, messbar nicht. Sicherheitsheader werden im HTTP-Response-Header mitgesendet und verursachen keinen nennenswerten Mehraufwand. TLS selbst kostet etwas Latenz, die durch HTTP/2 und moderne Protokolle weitgehend ausgeglichen wird. Eine sicher konfigurierte Website ist in der Praxis nicht langsamer als eine unsichere.

Schützt HTTPS vor Hacking oder Malware auf meiner Website?

Nein. HTTPS verschlüsselt den Transportweg zwischen Browser und Server, sagt aber nichts über den Inhalt aus. Wurde Ihre Website kompromittiert und liefert Schadcode aus, geschieht das genauso über eine HTTPS-Verbindung. Schutz vor Einbrüchen bieten regelmäßige Updates, abgesicherte Zugänge und eine saubere Berechtigungsverwaltung. Das Zertifikat schützt den Transportweg, nicht die Website selbst.

Was ist ein SSL-Strip-Angriff und wie verhindert HSTS ihn?

Tippt ein Nutzer nur den Domainnamen ein, schickt der Browser zunächst eine unverschlüsselte HTTP-Anfrage. Ein Angreifer im gleichen Netzwerk kann diese abfangen, bevor der Server auf HTTPS umleitet. HSTS schließt dieses Zeitfenster: Sobald der Browser die HSTS-Anweisung einmal über HTTPS erhalten hat, stellt er künftige Anfragen an diese Domain direkt als HTTPS, ohne den unverschlüsselten Umweg. Die Preload-Liste geht noch einen Schritt weiter: Browser kennen dort eingetragene Domains von Anfang an als HTTPS-Only, sogar beim allerersten Besuch.

Was tun, wenn ein Sicherheitsheader eine WordPress-Funktion bricht?

Das passiert vor allem bei der Content Security Policy. Der richtige Weg: erst den Content-Security-Policy-Report-Only-Header setzen statt des scharfen Content-Security-Policy-Headers. Im Report-Only-Modus protokolliert der Browser Verstöße in der Konsole, blockiert aber nichts. So sehen Sie, welche Quellen die Website tatsächlich nutzt, bevor Sie die Einschränkungen aktivieren. Die anderen Header (HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy) haben kaum Nebenwirkungen bei normalen WordPress-Installationen.