Problem
Ich habe derzeit das Problem, dass Ссылка nicht zu Ссылка
Damit verbunden ist eine Ruby-on-Rails-Lösung auf 'www' vor force_ssl
umleitenFrage
Gibt es eine Möglichkeit, auf die www-Domäne umzuleiten, bevor die SSL-Anforderung eintritt?
Ich benutze PHP.
HTTPS ist HTTP über TLS / SSL (siehe RFC 2818 ), das zuerst die SSL / TLS-Verbindung vor jedem herstellt HTTP-Verkehr wird gesendet. Jede Weiterleitung (über mod_rewrite
, benutzerdefinierter PHP-Code oder andere) 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.
Wenn Sie von https://domain.com
nach https://www.domain.com
umleiten möchten, muss das für https://domain.com
erhaltene Zertifikat für domain.com
gültig sein (und dann muss das für https://www.domain.com
erhaltene Zertifikat für www.domain.com
gültig sein) .
(Sie können zwei verschiedene Zertifikate mit Angabe des Server-Namens verwenden, wenn die beiden Hosts unter derselben IP-Adresse bedient werden, aber das ist ziemlich kompliziert.)
Am einfachsten wäre es, ein Zertifikat zu erhalten, das sowohl für domain.com
als auch für www.domain.com
gültig ist. Dies kann mithilfe eines einzelnen Zertifikats mit mehreren alternativen Antragstellernamen erfolgen. Die meisten Zertifizierungsstellen sollten solche Zertifikate ausstellen können. Manche tun es ohne zusätzliche Gebühr.
Eine Weiterleitungsantwort wird über das HTTP-Protokoll ausgegeben. Um eine solche Antwort / einen solchen Befehl zu erhalten, muss der Client zuerst eine HTTP-Verbindung herstellen. Wenn der Client versucht, eine HTTP_S_-Verbindung herzustellen, muss die SSL-Verhandlung zuerst abgeschlossen werden.
Mit anderen Worten, nein. Die URL https://domain.com
ist für Ihre App ungültig. Kein Kunde sollte über diese Adresse Bescheid wissen und sollte daher nicht versuchen, darauf zuzugreifen. Sie sollten es vermeiden, diese URL irgendwo anzugeben, damit Clients nicht versuchen, darauf zuzugreifen. Tatsächlich scheint es, dass Sie keinen HTTPS-Server für diese Domäne ausführen möchten, daher sollten Sie ihn eigentlich deaktivieren, sodass Clients sich über% HTTPS überhaupt nicht mit domain.com
verbinden können.
Die beste Lösung, die ich gefunden habe, ist einfach ein neues SSL-Zertifikat mit alternativen Namen zu kaufen, so dass Sie www und nicht-www im selben Zertifikat haben können und beide gültig sind. Auf diese Weise können Sie Ссылка sicher zu https: // transparent und ohne Zertifikatsfehler umleiten.