HTTPS und Zertifikat
Ob Ihre Seite verschlüsselt erreichbar ist, wann Ihr Zertifikat abläuft und was bei einer Warnseite hilft.
Ist die Seite verschlüsselt?
Ohne HTTPS kann jeder im selben Netz mitlesen, was Ihre Besucher eingeben, auch Passwörter. Er kann sogar Inhalte verändern, etwa im Hotel- oder Café-WLAN. HTTPS heißt, dass die Verbindung zwischen Browser und Server verschlüsselt ist. Sie erkennen es am Schloss in der Adresszeile.
„Kein HTTPS“ melden wir, wenn Ihre Seite nach allen Weiterleitungen über http ankommt. Das passiert, wenn Sie http:// eingeben und keine Weiterleitung auf https:// folgt, oder wenn https auf http zurückleitet. Die Note ist dann immer F, egal wie gut der Rest ist. Tippen Sie die Adresse ohne http ein, versuchen wir es zuerst mit https. Kommt darüber gar keine verschlüsselte Verbindung zustande, prüfen wir über http. Klappt auch das nicht, sehen Sie eine Fehlermeldung statt einer Note.
So beheben Sie es: Fast jeder Hoster bietet das Zertifikat kostenlos an, meist von Let's Encrypt. Schalten Sie es in der Verwaltung Ihres Hosters ein und dazu die Weiterleitung von http auf https. Danach lohnt sich der Header Strict-Transport-Security.
Weiterleitung von http auf https
Wer Ihre Adresse ohne https eintippt oder einem alten Link folgt, landet zuerst auf http://. Leitet Ihr Server von dort nicht auf https:// um, bekommt der Besucher die Seite unverschlüsselt. Wir rufen Ihre Startseite dafür einmal über http:// auf, so wie ein Browser beim Eintippen, und sehen nur nach, ob eine Weiterleitung auf https folgt. Den Inhalt lesen wir dabei nicht. Antwortet der Server über http mit der Seite, melden wir das als Warnung. Setzt Ihre Seite HSTS, ist es nur ein Hinweis, weil Browser wiederkehrende Besucher dann selbst auf https schicken. Ist Port 80 geschlossen, gibt es keinen Befund. Bei Adressen einer Plattform wie name.lovable.app prüfen wir das nicht, dort entscheidet die Plattform.
So beheben Sie es: Fast jeder Hoster hat dafür einen Schalter, oft „HTTPS erzwingen“. Sonst reicht eine Regel auf dem Server:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]server {
listen 80;
server_name example.de www.example.de;
return 301 https://$host$request_uri;
}Das Zertifikat
Das Zertifikat ist der Ausweis Ihrer Domain, im Browser steht es für das Schloss. Eine Zertifizierungsstelle stellt es aus, und nach einer festen Zeit läuft es ab. Beim Verbindungsaufbau lesen wir, wer es ausgestellt hat, bis wann es gilt und ob der Browser es anerkennen würde.
- Ungültig: Es passt nicht zur Domain, ist selbst ausgestellt oder unvollständig eingerichtet. Browser zeigen eine Warnseite.
- Abgelaufen: Das Ablaufdatum ist vorbei. Auch dann sehen Besucher eine Warnseite.
- Läuft bald ab: Unter 14 Tagen ist das eine Warnung, unter 30 Tagen ein Hinweis.
Ist das Zertifikat ungültig, scheitert der Abruf meist schon. Dann bekommen Sie keine Note. Sie sehen nur die Meldung, dass die Seite wegen des Zertifikats nicht erreichbar war.
So beheben Sie es: Sehen Sie bei Ihrem Hoster nach, ob die automatische Verlängerung eingeschaltet ist. Kostenlose Zertifikate gelten nur wenige Monate und erneuern sich normalerweise von selbst. Bleibt der Hinweis stehen, hat oft eine Änderung an der Domain die Verlängerung gestoppt, zum Beispiel ein Umzug zu einem anderen Anbieter.
Die Version der Verschlüsselung
Die Technik hinter HTTPS heißt TLS und hat Versionen. TLS 1.0 und 1.1 gelten als unsicher, aktuelle Browser haben sie abgeschaltet. Aktuell sind TLS 1.2 und 1.3. Die TLS-Richtlinie des BSI (TR-03116-4) setzt mindestens TLS 1.2 voraus und empfiehlt TLS 1.3. Wir melden eine veraltete Version, wenn unsere Verbindung über TLS 1.0 oder 1.1 zustande kommt. Kann ein Server nur noch diese alten Versionen, klappt meist gar keine Verbindung. Sie sehen dann eine Fehlermeldung statt einer Note.
Ob Ihr Server neben TLS 1.2 auch noch die alten Versionen annimmt, testen wir nicht. Das können spezialisierte TLS-Tests.
So beheben Sie es: Stellen Sie in der Server- oder Hoster-Einstellung mindestens TLS 1.2 ein. Bei nginx sieht das so aus:
ssl_protocols TLSv1.2 TLSv1.3;Bei Apache heißt die Zeile SSLProtocol -all +TLSv1.2 +TLSv1.3. Bei verwalteten Hostern stellen Sie das im Panel ein oder fragen den Support.
Noch Fragen? Schreiben Sie uns.