Frage Umleiten von https zu einem anderen https


Ich habe für diese Frage gegoogelt, und ironisch ärgerlicherweise kann ich keine konkrete Antwort finden. Ich habe diese Frage in der Vergangenheit selbst beantwortet, und jetzt kann ich mich 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 an nehmen https://www.example.com/ und umleiten den Verkehr zu https://www.example2.com/ .

Ich glaube, 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 respektablen Dokumentation geben, die das erklärt?


25
2017-08-05 14:15


Ursprung


Deine Situation mag ärgerlich sein, aber es ist nicht ironisch;) - Gareth
@Gareth, Es ist die Alanis Morissette Definition von ironisch (aka nervig wie du schon sagtest). - ManiacZX
@ManiacZX Ich habe immer gedacht, dass die Ironie im Alanis Morissette Song tatsächlich das Lied ist. Es ist ironisch, dass das Lied keine echte Ironie hat. - Joshua


Antworten:


Sie können dies tun, beide Seiten müssen ein gültiges SSL-Zertifikat haben. Auf diese Weise geben Browser kein Sicherheitspopup. Wenn beide Standorte auf demselben Server vorhanden sind, müssen beide Domänen von unterschiedlichen IP-Adressen gehostet werden.

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

Es gibt zwei Möglichkeiten, dies zu umgehen:

  • Haben Sie ein Platzhalterzertifikat für * .example.com, sodass alle Subdomänen 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 empfangen hat.

Beachten Sie, dass es durchaus möglich ist, mehrere IP-Adressen an denselben Netzwerkadapter anzuhängen. Sie benötigen lediglich eine zweite IP-Adresse in Ihrem IP-Adressraum.

Aktualisieren: Heutzutage können Sie mehrere SSL-Sites in einer einzigen IP-Adresse ausführen. Um dies zu ermöglichen, konfigurieren Sie die SNI-Unterstützung auf Ihrem Webserver. Die meisten modernen Browser (außer Windows XP und Android 2) unterstützen dies.


15
2017-08-05 16:09



Sie können auch mehrere SSL-Sites unter derselben IP-Adresse unter einem Unified Communication Certificate (UCC) hosten, siehe help.godaddy.com/article/3908 - ManiacZX
Eine weitere Problemumgehung für das Problem Multi-Hostname / Ein IP-Zertifikat besteht in der Verwendung alternativer Portnummern. Dies ist nicht ideal, da einige Firewalls / öffentliche Zugriffspunkte Nicht-80/443-Verkehr blockieren. - Bryan Agee


Ich habe das nie versucht, daher spreche ich nicht von konkreten Erfahrungen, aber es sollte funktionieren. Sie benötigen ein gültiges SSL-Zertifikat für https://www.beispiel.com Da der Hostname innerhalb des HTTP-Headers verschlüsselt ist, weiß Ihr Server nicht, bis er entschlüsselt wird. Danach sollte es umgeleitet werden, wie es eine normale HTTP-Anfrage wäre.


5
2017-08-05 14:19





Warum wäre das unerwünscht?

Zum Beispiel betreiben Big Bank und Little Bank Websites auf https, um den Kunden ein sicheres Gefühl zu vermitteln. Big Bank kauft Little Bank. Irgendwann werden die IT-Leute eine Umleitung einrichten für https://www.littlebank.com zu https://www.bigbank.com. Dies ist ein legitimer Grund, von https zu https umzuleiten.

Dies sollte gut funktionieren.


2
2017-08-05 16:03



Das von Ihnen beschriebene Szenario wäre in Ordnung, wenn Sie jedoch zu www.littlebank.com navigieren und zu www.bigbank.com umgeleitet werden, während die tatsächliche Adresse so maskiert ist, dass der Browser immer noch www.littlebank.com anzeigt, ist das nicht gut Ding. Dies ist ziemlich häufig bei nicht sicheren Websites, wo es irrelevant ist, aber Sie können sicherlich die Gefahren sehen, die sich daraus ergeben, dass Sie sich als eine sichere Website präsentieren, die Sie tatsächlich nicht sind. - Charles


Die eine Trennung, von der ich denke, dass sie in den aktuellen Antworten für Sie vorhanden ist, ist, dass unter diesen Umständen eine echte Umleitung (dh: Browser wird auf www.example2.com umgestellt) in Ordnung ist, aber wenn Sie dies maskieren so dass der Browser immer noch denkt, dass es auf www.example.com gezeigt wird, wenn Sie es in Wirklichkeit an www.example2.com gesendet haben, diese Hier werden Sicherheitswarnungen genau angezeigt, weil Sie versuchen könnten, den Benutzer zu fälschen.

Die kurze Version ist eine normale Weiterleitung sollte in Ordnung sein, Adresse Maskierung wird wahrscheinlich Sie mit viel zu erklären, zu tun.


1
2017-08-05 20:37



Danke Charles. Das muss die "unerwünschte" Situation sein, an die ich dachte. - Stefan Lasiewski


Wie man es sieht, kann dieses Problem 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 tippen https://example.com In einem Browser hat Ihr PC eine TCP-Verbindung zu einem Server mit der IP-Adresse 192.168.0.1 aufgebaut, wobei einige Prozesse den Port 443 überwachen. Was ist, wenn der Server gleichzeitig versucht, in Details der über diesen TCP gesendeten Daten zu gelangen Sitzung wie das Starten der SSL-Verhandlung) stellt eine TCP-Verbindung zu 192.168.0.2 her (ein anderer Server mit DNS A example2.com, der darauf zeigt. HA Proxy Linux Utility, das auf dem ersten Server installiert ist, könnte dies mit einer solchen Konfiguration lösen:

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 ein SSL-Zertifikat mit beispielsweise CN = example2.com und SAN = example.com an.

Oder Sie richten einen DNS-slpit-Horizont ein, wenn die Benutzer perstective example.com und example2.com zu 192.168.0.1 auflösen.


0
2018-03-13 16:03