Leiten Sie https zu einem anderen https um

28

Ich habe nach dieser Frage gegoogelt und ironischerweise finde ich keine konkrete Antwort. Ich habe diese Frage in der Vergangenheit selbst beantwortet und kann mich jetzt nicht mehr an meine eigene Erklärung erinnern.

Mehrmals im Jahr wird mich jemand darum bitten. Ich möchte sie auf einen respektablen Artikel hinweisen, der dies erklärt.

Ich möchte die URL unter https://www.example.com/ verwenden und den Datenverkehr zu https://www.example2.com/ umleiten .

Ich denke, das sollte technisch möglich sein, ist aber unerwünscht. Was ist falsch an dieser Methode? Erhalten Browser ein Sicherheits-Popup, da ich sie auf eine andere Site umleite? Kann jemand einen Link zu einer seriösen Dokumentation bereitstellen, die dies erklärt?

Stefan Lasiewski
quelle
4
Ihre Situation mag ärgerlich sein, aber es ist nicht ironisch;)
Gareth

Antworten:

17

Dazu benötigen beide Standorte ein gültiges SSL-Zertifikat. Auf diese Weise geben Browser kein Sicherheits-Popup aus. Wenn sich beide Standorte jedoch auf demselben Server befinden, müssen beide Domänen von unterschiedlichen IP-Adressen aus gehostet werden.

Ein Webserver überprüft den "Host" -Header in der HTTP-Anforderung, um festzustellen, welche Site er bedienen muss. Die SSL-Aushandlung findet statt, bevor die HTTP-Anforderung gesendet wird, sodass der Webserver zu diesem Zeitpunkt nicht feststellen kann, welche Website angezeigt wird. Es wird immer das gleiche Zertifikat an den Browser gesendet.

Es gibt zwei Möglichkeiten, dies zu umgehen:

  • Haben Sie ein Wildcard-Zertifikat für * .example.com, sodass alle Subdomains dasselbe Zertifikat verwenden können.
  • Führen Sie jede SSL-Site unter einer anderen IP-Adresse aus. Auf diese Weise weiß der Webserver, welches SSL-Zertifikat er an den Browser senden kann, indem er die IP-Adresse überprüft, die die eingehende Verbindung erhalten hat.

Beachten Sie, dass es durchaus möglich ist, mehrere IP-Adressen an denselben Netzwerkadapter anzuschließen. Sie benötigen lediglich eine zweite IP-Adresse, die in Ihrem IP-Adressraum verfügbar ist.

Update: Heutzutage können Sie mehrere SSL-Sites mit einer einzigen IP ausführen. Konfigurieren Sie dazu die SNI-Unterstützung auf Ihrem Webserver. Die meisten modernen Browser (außer Windows XP und Android 2) unterstützen dies.

vdboor
quelle
1
Sie können auch mehrere SSL-Sites unter derselben IP- Adresse
ManiacZX,
Eine andere Problemumgehung für das Problem mit mehreren Hostnamen / einem IP-Zertifikat besteht darin, alternative Portnummern zu verwenden. Dies ist nicht ideal, da einige Firewalls / öffentliche Zugriffspunkte den Nicht-80/443-Verkehr blockieren.
Bryan Agee
5

Ich habe das noch nie versucht, daher spreche ich nicht aus konkreter Erfahrung, aber es sollte funktionieren. Sie benötigen ein gültiges SSL-Zertifikat für https://www.example.com, da der Hostname im HTTP-Header verschlüsselt ist, sodass Ihr Server die Umleitung erst nach Entschlüsselung weiß. Danach sollte es wie eine normale HTTP-Anfrage umleiten.

James L
quelle
2

Warum wäre das unerwünscht?

Big Bank und Little Bank betreiben beispielsweise Websites auf https, um den Kunden ein sicheres Gefühl zu geben. Big Bank kauft Little Bank. Irgendwann richten die IT-Mitarbeiter eine Weiterleitung von https://www.littlebank.com zu https://www.bigbank.com ein . Dies ist ein legitimer Grund, von https zu https umzuleiten.

Dies sollte gut funktionieren.

Doug Harris
quelle
Dieses Szenario, das Sie beschrieben haben, ist in Ordnung. Wenn Sie jedoch zu www.littlebank.com navigieren und zu www.bigbank.com weitergeleitet werden, während die tatsächliche Adresse maskiert ist, sodass im Browser immer noch www.littlebank.com angezeigt wird, ist DAS kein gutes Szenario Sache. Dies ist ziemlich häufig bei nicht sicheren Websites der Fall, bei denen dies irrelevant ist. Sie können jedoch mit Sicherheit die Gefahren erkennen, die mit der Darstellung Ihrer Website als sichere Website verbunden sind, die Sie in Wirklichkeit nicht sind.
Charles
1

Die einzige Unterbrechung, die meines Erachtens in den aktuellen Antworten enthalten ist, ist, dass unter diesen Umständen eine echte Umleitung (dh, der Browser wird auf www.example2.com umgeleitet) in Ordnung ist, aber wenn Sie dies maskieren so dass der Browser bei www.example.com ist spitze stillthinks , wenn in Wirklichkeit Sie es www.example2.com geschickt haben, dies ist , wo Sie Sicherheitswarnungen sehen werden , gerade weil Sie den Benutzer fälschen könnte versuchen.

Die Kurzversion ist eine normale Weiterleitung sollte in Ordnung sein, die Adressmaskierung wird Ihnen wahrscheinlich eine Menge Erklärungen überlassen.

Charles
quelle
Vielen Dank, Charles. Das muss die "unerwünschte" Situation sein, an die ich gedacht habe.
Stefan Lasiewski
0

Dieses Problem kann auf einer Transportschicht gelöst werden. Angenommen, Sie haben einen DNS-A-Eintrag für example.com, der auf 192.168.0.1 verweist. Wenn Sie https://example.com in einen Browser eingeben, hat Ihr PC eine TCP-Verbindung zu einem Server mit der IP-Adresse 192.168.0.1 hergestellt, auf dem einige Prozesse Port 443 überwachen Wenn Sie Details zu den über diese TCP-Sitzung gesendeten Daten abrufen (z. B. Starten der SSL-Aushandlung), wird eine TCP-Verbindung zu 192.168.0.2 (einem anderen Server mit DNS) hergestellt eine konfiguration wie diese:

defaults
        log    global
        mode    tcp
        retries 2
        option redispatch
        option tcplog
        option tcpka
        option clitcpka
        option srvtcpka
        timeout connect 5s      
        timeout client  24h     #timeout client->haproxy(frontend)
        timeout server  60m

listen front443 192.168.0.1:443
    server back443 192.168.0.2:443

Dies führt jedoch zu einem SSL-Zertifikatfehler, es sei denn, Ihr example2.com-Webserver zeigt beispielsweise ein SSL-Zertifikat mit CN = example2.com und SAN = example.com an.

Oder Sie richten einen DNS-Slpit-Horizont ein, wenn von den Benutzern perstective example.com und example2.com die Auflösung 192.168.0.1 erfolgt.

Alexey Smirnov
quelle