Ich habe eine Rewrite-Regel, die HTTPS und www erzwingt. Das SSL-Zertifikat gilt für die www-Version der Site. Die gesamte Website muss HTTPS sein.
Das Problem ist, dass, wenn die Anfrage Ссылка lautet, der Browser eine Warnseite anzeigt, bevor die Weiterleitung ausgeführt werden kann. ("Diese Verbindung ist nicht vertrauenswürdig" in Firefox und "Dies ist wahrscheinlich nicht die Website, die Sie suchen!" In Chrome)
Wenn der Benutzer in Firefox eine Ausnahme hinzufügt oder den Fehler in Chrome ignoriert, wird die Rewrite-Regel ausgeführt und sie werden mit einer 100% -Sicherheits-Seite zur www-Version der Website umgeleitet.
%Vor%Ich habe die Regeln auf der Website sowie auf Ссылка
getestetWie kann ich die Weiterleitung vor der Browserwarnung ausführen?
Die Umleitung von https://example.com
nach https://www.example.com
kann nur stattfinden, nachdem der Client eine erste erfolgreiche Anfrage an https://example.com
gemacht hat.
Dies liegt daran, dass HTTPS HTTP über TLS / SSL ist (siehe RFC 2818 ), das zuerst SSL / TLS einrichtet Verbindung, bevor ein HTTP-Verkehr gesendet wird. mod_rewrite
wird immer angewendet, nachdem die SSL / TLS-Verbindung hergestellt wurde. Dies wäre eigentlich ein Sicherheitsproblem, da ein Angreifer den Client neu schreiben und umleiten kann, bevor das Zertifikat verifiziert wurde. Selbst wenn das TLS-Upgrade innerhalb von HTTP (RFC 2817, das praktisch nie verwendet / unterstützt wird und nicht https ist), sollte die Umleitung immer noch von einer vertrauenswürdigen Entität kommen.
Damit diese erste Verbindung funktioniert, muss der Server unter https://example.com
über ein Zertifikat verfügen, das für example.com
gültig ist. Anderenfalls tritt diese Verbindung nicht auf (und der Server sendet keine Umleitungsantwort).
Um Ihr Ziel zu erreichen, müssen Sie für https://example.com
ein Zertifikat anfordern, das für example.com
gültig ist, und für https://www.example.com
ein Zertifikat anfordern, das für www.example.com
gültig ist.
Es gibt zwei Lösungen:
example.com
als auch für www.example.com
gültig ist. Dies kann erreicht werden, indem ein Zertifikat mit mehreren SAN-DNS-Einträgen (Subject Alternative Name) erstellt wird (es funktioniert nicht nur mit *.example.com
, da der Punkt nicht Teil des Platzhaltermusters ist). Letzteres ist sicherlich die einfachste Lösung. Es ist durchaus üblich, dass Zertifizierungsstellen Zertifikate mit SAN-Einträgen für example.com
und www.example.com
erstellen, wenn Sie sich für das eine oder andere bewerben, manchmal ohne zusätzliche Gebühr.
In diesem Beitrag wird Ihr Problem behandelt und die folgende Antwort gegeben:
Sie benötigen ein Zertifikat für example.com, wenn Sie das Problem mit dem ungültigen Zertifikat vermeiden möchten. Aus Sicherheitsgründen sind Weiterleitungen vor der Authentifizierung nicht erlaubt.
Eine andere Option könnte sein, ein Platzhalter-Cert zu erhalten, der es Ihnen erlaubt, nach (Scheinbar wird das nicht funktionieren. Danke @Giel) *.example.com
zu suchen.
Sie könnten http://example.com/
redirect auf https://www.example.com/
setzen, aber das hilft Ihnen möglicherweise nicht, wenn Sie bereits https://example.com/
besuchen.
Tags und Links http .htaccess mod-rewrite