Direkt zum Inhalt

Cookie-Einstellungen

Wählen Sie, welche Arten von Cookies Sie erlauben. Sie können Ihre Auswahl jederzeit über Cookie-Einstellungen unten auf jeder Seite ändern. Datenschutzerklärung

Notwendig

Immer aktiv

Nötig zum Einloggen, für Ihren Warenkorb und um Ihre Auswahl zu speichern. Diese sind immer aktiv.

Welche Cookies?
  • weboke_sessie, weboke_klant, weboke_remember: Ihre Sitzung und eingeloggt bleiben
  • weboke_basket: Ihr Warenkorb
  • wkBtwIncl: Preise mit oder ohne MwSt. anzeigen
  • wok_cookies: Ihre Cookie-Auswahl, 12 Monate

Misst, welche Anzeige zu einem Besuch oder einer Bestellung führt, damit wir nicht für Anzeigen zahlen, die nichts bringen.

Welche Cookies?
  • Google Ads über Google Tag Manager (_gcl_au, _gcl_aw), bis zu 90 Tage
  • OpenAI Ads, Anzeigen in ChatGPT
  • wok_aff: über welchen Partner Sie zu uns kamen (Partnerprogramm), 60 Tage

4,6

Land und Sprache

Jedes Land hat seine eigene Website, mit Preisen und MwSt. dieses Landes.

Anzeigen

Modul 4 · 4.2

Deutsch

Ihre Website: https, HSTS und Sicherheitsheader

Modul 4: E-Mail, Website und Domain · Lesezeit: 11 Minuten

Lernziel: Nach dieser Lektion können Sie die Grundsicherheit Ihrer Website überprüfen: ein gültiges Zertifikat, die Weiterleitung auf https, HSTS mit einer passenden max-age, die wichtigsten Sicherheitsheader und die Aktualisierung Ihres CMS.
Kernbegriffe: TLS-Zertifikat, https, Weiterleitung auf https, HSTS, max-age, includeSubDomains, preload, HTTP-Header, Content-Security-Policy, X-Content-Type-Options, frame-ancestors, X-Frame-Options, Referrer-Policy

Was passiert, wenn jemand Ihre Website öffnet

Gibt ein Kunde example.com in die Adressleiste ein, fragt der Browser die Seite bei Ihrem Webserver an. Dieses Gespräch läuft über HTTP. Bei https liegt eine verschlüsselte Verbindung darum herum: TLS. Dafür benötigt Ihre Website ein TLS-Zertifikat (oft noch SSL-Zertifikat genannt). Das Zertifikat belegt, dass der Server wirklich zu example.com gehört, und die Verschlüsselung sorgt dafür, dass niemand unterwegs mitlesen oder etwas verändern kann. Das ist wichtig bei öffentlichem WLAN, bei dem Sie nicht wissen, wer das Netzwerk verwaltet (Lektion 5.3).

Bei jeder Antwort schickt der Server zusätzlich zur eigentlichen Seite eine Reihe von Headern mit: kurze Zeilen mit Informationen und Anweisungen für den Browser. Sie sehen sie nicht auf dem Bildschirm, aber sie bestimmen zu einem großen Teil, wie sicher der Browser mit Ihrer Website umgeht. Ein Teil dieser Header sind Sicherheitsheader. In dieser Lektion gehen wir die vier Ebenen durch: Zertifikat, Weiterleitung, HSTS und Header. Danach werfen wir kurz einen Blick auf die Aktualisierung Ihrer Website selbst.

Ebene 1: ein gültiges Zertifikat

Ein Zertifikat ist in Ordnung, wenn es drei Bedingungen erfüllt:

  1. es ist nicht abgelaufen;
  2. es wurde von einem vertrauenswürdigen Aussteller ausgestellt (einer Zertifizierungsstelle, die die Browser kennen, wie Let's Encrypt oder ein kommerzieller Anbieter);
  3. es gilt für genau den Namen, den der Besucher öffnet: example.com und www.example.com, wenn Sie beide verwenden.

Fast jeder Hostinganbieter richtet heutzutage ein kostenloses Zertifikat ein, das sich automatisch verlängert. Geht etwas schief, liegt das meist daran, dass der Domainname auf einen anderen Server zeigt oder dass ein CAA-Eintrag den Aussteller blockiert (Lektion 4.3).

Wichtig zu wissen: Ein Schlosssymbol sagt nichts über die Vertrauenswürdigkeit der Website aus. Es bedeutet nur, dass die Verbindung verschlüsselt ist und dass das Zertifikat zu dem Namen in der Adressleiste passt. Phishing-Seiten unter mijnbank-veilig.example haben genauso gut ein Schlosssymbol. Deshalb lernen Sie in Lektion 3.2, die Domain zu lesen.

Ebene 2: immer auf https weiterleiten

Ein Zertifikat allein reicht nicht. Wer http://example.com öffnet, zum Beispiel über einen alten Link oder indem er nur den Namen eingibt, muss automatisch zur https-Version gelangen. Das nennt man Weiterleitung (ein Redirect, meist mit Statuscode 301).

Eine saubere Reihenfolge ist:

http://example.com      ->  https://example.com
https://example.com     ->  https://www.example.com   (nur wenn Sie www als Hauptadresse verwenden)
http://www.example.com  ->  https://www.example.com

Achten Sie auf die erste Zeile: Leiten Sie von http zuerst auf https unter demselben Namen weiter, erst danach gegebenenfalls auf www. So kann der Browser die HSTS-Anweisung des nackten Namens ebenfalls erhalten. Internet.nl prüft genau das.

Ein häufiger Fehler ist eine doppelte Weiterleitung: im Hosting-Panel und zusätzlich in einem Plugin oder in .htaccess. Das kann eine Endlosschleife erzeugen ("zu viele Weiterleitungen"). Verwenden Sie nur eine Stelle.

Ebene 3: HSTS

Die Weiterleitung hat einen schwachen Moment: Die allererste Anfrage läuft noch unverschlüsselt über http. Ein Angreifer im selben Netzwerk kann diese eine Anfrage abfangen und den Besucher auf einer nachgebauten, unverschlüsselten Version halten. Dafür gibt es HSTS (HTTP Strict Transport Security, RFC 6797).

Mit HSTS schickt Ihre Website über https einen Header mit:

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

Der Browser merkt sich dann: "Diese Website nur über https öffnen, für die nächsten 31.536.000 Sekunden (ein Jahr)." Gibt der Besucher später http://example.com ein, macht der Browser selbst https daraus, noch bevor etwas über das Netzwerk geht. Die schwache erste Anfrage entfällt.

BestandteilBedeutung
max-age=Wie lange der Browser es sich merkt, in Sekunden. Internet.nl rechnet mindestens ein Jahr (max-age=31536000) als ausreichend; eine kurze Zeitspanne schützt Menschen nicht, die Ihre Website nur gelegentlich besuchen.
includeSubDomainsGilt auch für alle Subdomains, wie shop.example.com und mail.example.com.
preloadSie beantragen die Aufnahme in die Liste, die fest in Browser eingebaut ist (hstspreload.org). Dann ist sogar der allererste Besuch geschützt. Voraussetzungen sind unter anderem eine max-age von mindestens einem Jahr, includeSubDomains und alle Subdomains unter https. Das Entfernen aus der Liste dauert lange.
max-age=0Löscht die gemerkte Anweisung wieder.

Drei Dinge, die Sie wissen sollten, bevor Sie HSTS aktivieren:

  • Https muss zuerst überall funktionieren. Ein Browser, der sich HSTS gemerkt hat und einen Zertifikatfehler feststellt, bietet dem Besucher keine Schaltfläche, um trotzdem fortzufahren (RFC 6797, Abschnitt 12.1). Läuft Ihr Zertifikat ab oder stimmt es nicht für www, ist Ihre Website für diese Besucher unerreichbar, bis das Problem behoben ist.
  • includeSubDomains betrifft alles unter Ihrer Domain. Eine alte Subdomain ohne Zertifikat, zum Beispiel eine Drucker- oder Kameraseite unter camera.example.com, lässt sich danach nicht mehr öffnen.
  • Bauen Sie es schrittweise auf. Beginnen Sie mit einer kurzen max-age (zum Beispiel einen Tag), prüfen Sie, ob alles funktioniert, und erhöhen Sie schrittweise auf ein Jahr. Warten Sie bei jedem Schritt die gesamte Zeitspanne ab.

Einen HSTS-Header, der über gewöhnliches http ankommt, ignoriert der Browser. Sie sehen ihn also nur in der https-Antwort.

Ebene 4: Sicherheitsheader

Neben HSTS gibt es einige Header, die dem Browser mitteilen, was er mit Ihren Seiten tun darf und was nicht. Sie müssen nicht alle perfekt beherrschen, aber die ersten drei sind einfach und ohne Risiko.

HeaderWogegenGuter Wert
X-Content-Type-OptionsDer Browser rät selbst, um was für eine Datei es sich handelt, wodurch ein hochgeladenes "Bild" als Skript ausgeführt werden kann.nosniff (der einzige gültige Wert)
Content-Security-Policy: frame-ancestors ... oder X-Frame-OptionsClickjacking: eine andere Website lädt Ihre Seite unsichtbar in einen Frame und lässt Besucher unbemerkt auf Ihre Schaltflächen klicken.frame-ancestors 'self' oder 'none'; der ältere Header X-Frame-Options: SAMEORIGIN oder DENY
Referrer-PolicyBei einem Klick auf eine andere Website schickt der Browser die Adresse der vorherigen Seite mit. Darin können sensible Informationen stehen, etwa ein Suchbegriff oder eine Bestellnummer.no-referrer oder same-origin (streng), strict-origin-when-cross-origin (üblich, internet.nl gibt hier eine Warnung aus)
Content-Security-Policy (vollständig)Begrenzt, von welchen Stellen aus Skripte, Stile und Bilder geladen werden dürfen. Erschwert eingeschleuste bösartige Skripte (XSS) erheblich.Individuell pro Website. Vermeiden Sie unsafe-inline, unsafe-eval und Wildcards.

Eine vollständige Content-Security-Policy ist am wirkungsvollsten, aber auch am schwierigsten umzusetzen: Eine zu strenge Regel kann Ihre Statistiken, Ihre Zahlungsschaltfläche oder Ihr Chatfenster lahmlegen. Mit der Variante Content-Security-Policy-Report-Only können Sie zunächst messen, was blockiert würde, ohne etwas zu beschädigen. Überlassen Sie dies Ihrem Webentwickler oder beginnen Sie nur mit frame-ancestors.

Header selbst ansehen

Öffnen Sie Ihre Website in einem Browser, drücken Sie F12 (oder wählen Sie "Untersuchen"), gehen Sie zum Tab Netzwerk, laden Sie die Seite neu und klicken Sie auf die erste Anfrage. Unter "Antwortheader" (Response Headers) sehen Sie alles, was der Server mitschickt. Über die Befehlszeile geht es auch:

curl -sI https://example.com/

Die Website selbst: CMS, Plugins und Themes

Die besten Header helfen nichts, wenn die Software hinter Ihrer Website Sicherheitslücken hat. Die meisten gehackten Websites kleiner Unternehmen wurden nicht über den Webserver kompromittiert, sondern über ein veraltetes Plugin, ein Theme, das seit Jahren nicht mehr aktualisiert wurde, oder ein schwaches Administratorpasswort.

  • Aktivieren Sie automatische Updates für Ihr CMS (zum Beispiel WordPress, Joomla oder ein anderes System) und für Plugins, wo das möglich ist.
  • Entfernen Sie Plugins und Themes, die Sie nicht verwenden; deaktiviert reicht nicht, die Dateien liegen weiterhin auf dem Server.
  • Verwenden Sie für den Administrator-Login ein starkes, einzigartiges Passwort und Zwei-Faktor-Authentifizierung (Modul 2), und begrenzen Sie die Anzahl der Anmeldeversuche.
  • Halten Sie die PHP-Version (oder eine andere Sprache) Ihres Pakets auf einem Stand, der noch Updates erhält (Lektion 5.1).

In der Praxis: so sieht es aus

In DirectAdmin, dem Panel, das WebOké verwendet, aktivieren Sie bei Ihrer Domain zuerst Sicheres SSL und danach SSL mit https-Weiterleitung erzwingen. An derselben Stelle befindet sich ein Schalter für HSTS; aktivieren Sie ihn erst, wenn das Zertifikat für alle Namen funktioniert. Bei anderen Anbietern funktioniert es ähnlich, oder Sie regeln es in den Einstellungen Ihres CMS.

Läuft Ihre Website auf Apache oder LiteSpeed, können Sie die Header auch in .htaccess setzen:

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000"
  Header always set X-Content-Type-Options "nosniff"
  Header always set Content-Security-Policy "frame-ancestors 'self'"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

Fügen Sie includeSubDomains erst hinzu, wenn Sie sicher sind, dass jede Subdomain https hat. Prüfen Sie nach jeder Änderung mit dem Websitetest von internet.nl oder mit den Entwicklertools Ihres Browsers.

Zusammenfassung

  • Ein Schlosssymbol bedeutet: verschlüsselt und der richtige Name. Es bedeutet nicht: vertrauenswürdig.
  • Leiten Sie http immer auf https weiter, zuerst unter demselben Namen, und an nur einer Stelle.
  • HSTS lässt den Browser merken, dass Ihre Website nur über https läuft; internet.nl rechnet eine max-age von mindestens einem Jahr (31536000) als gut. Aktivieren Sie es erst, wenn https überall funktioniert, und bauen Sie es schrittweise auf.
  • X-Content-Type-Options: nosniff, frame-ancestors (oder X-Frame-Options) und Referrer-Policy sind einfach umzusetzen; eine vollständige Content-Security-Policy ist individuell.
  • Updates Ihres CMS, Ihrer Plugins und Themes sind mindestens so wichtig wie Header.

Quiz

1. Was verhindert HSTS genau?



2. Sie aktivieren Strict-Transport-Security: max-age=31536000; includeSubDomains. Eine Woche später läuft das Zertifikat von shop.example.com ab. Was bemerken Stammbesucher?



3. Welche max-age rechnet internet.nl mindestens als ausreichend für HSTS?



4. Wogegen schützt Content-Security-Policy: frame-ancestors 'self'?



5. Sie sehen ein Schlosssymbol bei mijnbank-veilig.example in der Adressleiste. Was wissen Sie dadurch mit Sicherheit?



Aufgabe

Aufgabe A4.2: Https, HSTS und Header Ihrer Website überprüfen. Geben Sie den Domainnamen Ihrer Website ein (haben Sie keine, verwenden Sie internet.nl). Das Programm öffnet http:// und https:// Ihrer Domain und prüft das Zertifikat, die Weiterleitung auf https, HSTS und die Sicherheitsheader. Sie erhalten pro Punkt Grün, Orange oder Rot mit Erklärung.

Aufgabe A4.2: Https, HSTS und Header Ihrer Website überprüfen

Geben Sie den Domainnamen Ihrer Website ein (haben Sie keine, verwenden Sie internet.nl). Das Programm öffnet http:// und https:// Ihrer Domain und prüft das Zertifikat, die Weiterleitung auf https, HSTS und die Sicherheitsheader. Geben Sie anschließend die max-age von HSTS ein.



Was Sie eingeben und was wir finden, speichern wir nicht. Ihr Browser merkt sich Ihre Antworten und ob Sie die Aufgabe bestanden haben. Sind Sie angemeldet, speichern wir in Meine Kurse nur, dass Sie die Aufgabe (fast) richtig hatten; auch das können Sie dort löschen.

Aufgabe D4.2: Ihre Website aktualisieren und aufräumen. Melden Sie sich in der Verwaltung Ihrer Website an, prüfen Sie die Version Ihres CMS, Ihrer Plugins und Themes, entfernen Sie, was Sie nicht verwenden, und aktivieren Sie automatische Updates, wo das möglich ist. Haken Sie die Checkliste ab und beantworten Sie die Reflexionsfrage.

Aufgabe D4.2: Ihre Website aktualisieren und aufräumen

So gehen Sie vor: (1) Melden Sie sich in der Verwaltung Ihrer Website an (oder bitten Sie Ihren Webentwickler, dies gemeinsam mit Ihnen zu tun). (2) Notieren Sie die Version Ihres CMS und prüfen Sie, ob Updates bereitstehen. (3) Erstellen Sie ein Backup (Lektion 6.1), installieren Sie die Updates von CMS, Plugins und Themes. (4) Entfernen Sie Plugins und Themes, die Sie nicht verwenden. (5) Aktivieren Sie automatische Updates, wo das möglich ist. (6) Prüfen Sie, welche Administratorkonten es gibt, und entfernen Sie Konten von Personen, die nicht mehr für Sie tätig sind. (7) Aktivieren Sie die Zwei-Faktor-Authentifizierung (2FA) für jedes Administratorkonto.




Ihre Haken und Notizen bleiben nur in diesem Browser; wir senden sie nirgendwohin. Sind Sie angemeldet, speichern wir in Meine Kurse nur, dass Sie die Aufgabe erledigt haben.

Weiterführende Informationen

Die Schritte in den WebOké-Artikeln gelten für die Umgebung von WebOké; bei anderen Anbietern funktioniert es ähnlich.

Einen Moment bitte…

Richten Sie Ihre Domains ein

Legen Sie für jede Domain die Nameserver, die Verknüpfung mit Ihrem Hosting und den künftigen Inhaber fest.

Ihre Domains werden geladen…