Zum Inhalt springen
Achtung: Phishing-E-Mails im Namen der Gerwan GmbH im Umlauf – bitte keine Links anklicken und keine Daten eingeben. Mehr erfahren

HSTS einfach erklärt – HTTP Strict Transport Security konfigurieren

HSTS steht für HTTP Strict Transport Security und ist ein Sicherheitsmechanismus, mit dem Webserver modernen Browsern vorschreiben können, ausschließlich verschlüsselte HTTPS-Verbindungen zu akzeptieren. Dadurch wird verhindert, dass Nutzer versehentlich über unsichere HTTP-Verbindungen mit einer Webseite kommunizieren – selbst wenn sie manuell „http://“ in die Adresszeile eingeben.

Wie funktioniert HSTS?

Der Webserver sendet einen speziellen php">HTTP-Header namens Strict-Transport-Security mit einer Gültigkeitsdauer (in Sekunden) an den Browser. Sobald dieser Header einmal empfangen wurde, merkt sich der Browser, dass er künftig nur noch HTTPS-Verbindungen zu dieser Domain zulassen darf – auch bei direkten HTTP-Aufrufen.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Die Bestandteile:

  • max-age: Gibt die Dauer in Sekunden an, wie lange der Browser die HTTPS-Pflicht erzwingen soll.
  • includeSubDomains: Bezieht alle Subdomains mit ein (z. B. mail.domain.de).
  • preload: Optional. Die Domain kann in eine von Browsern genutzte HSTS-Preload-Liste aufgenommen werden.

Warum ist HSTS wichtig?

  • Verhinderung von Downgrade-Angriffen: Angreifer könnten versuchen, Verbindungen von HTTPS auf unsicheres HTTP umzuleiten (z. B. durch Man-in-the-Middle-Angriffe).
  • Erzwingung sicherer Kommunikation: HSTS stellt sicher, dass die Verbindung zur Webseite stets verschlüsselt erfolgt.
  • Besseres Nutzervertrauen: Webseitenbetreiber demonstrieren Sicherheitsbewusstsein.
  • DSGVO- und Compliance-Schutz: HSTS kann helfen, datenschutzkonforme Übertragungen abzusichern.

Aktivierung von HSTS – Beispiel (Apache)

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Für Nginx:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

HSTS Preload

Domains können optional bei hstspreload.org für die HSTS-Preload-List eingereicht werden. In dieser Liste enthaltene Domains werden von Browsern von vornherein nur über HTTPS aufgerufen – sogar beim ersten Besuch.

Voraussetzung:

  • HTTPS dauerhaft aktiviert
  • Header muss includeSubDomains und preload enthalten
  • max-age mindestens 31536000 (ein Jahr)

Nachteile & Vorsicht bei der Nutzung

  • Fehlkonfiguration kann aussperren: Ist HTTPS falsch eingerichtet und HSTS aktiv, können Besucher die Seite nicht mehr aufrufen.
  • Keine Rücknahme möglich (bei Preload): Einmal in der HSTS-Preload-Liste, dauert es Monate, bis ein Eintrag entfernt wird.
  • Subdomains müssen mitbedacht werden: Mit includeSubDomains müssen auch mail., blog. usw. HTTPS-fähig sein.

Beispiel für eine HSTS-Konfiguration in Apache (.htaccess)

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule>

Beispiel für eine HSTS-Konfiguration in Nginx

server {
    listen 443 ssl;
    server_name deine-domain.de;

    ssl_certificate     /etc/ssl/certs/deine-domain.pem;
    ssl_certificate_key /etc/ssl/private/deine-domain.key;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

    # weitere Einstellungen …
}

Fazit

HSTS ist ein wirkungsvolles Mittel, um HTTPS konsequent durchzusetzen und die Sicherheit von Domains und Webanwendungen deutlich zu erhöhen. Richtig konfiguriert verhindert es effektiv Downgrade-Angriffe und erhöht das Vertrauen der Nutzer. Bei Nutzung des Preload-Modus ist jedoch sorgfältige Planung notwendig, da eine Rücknahme aufwendig ist.

Haftungsausschluss: Die bereitgestellten Informationen dienen ausschließlich der allgemeinen Orientierung. Für Richtigkeit, Vollständigkeit und Aktualität wird keine Gewähr übernommen. Die Inhalte sind nicht rechtsverbindlich und nicht Bestandteil einer Leistungsbeschreibung.

Preise inkl. MwSt. Angebote sind zeitlich begrenzt verfügbar und teilweise an Mindestvertragslaufzeiten gebunden.