Ist es möglich, eine https-Verbindung umzuleiten, bevor SSL mit Haproxy überprüft wird?

11

Ich habe zwei Domänen myexample.comund my-example.com. Ich möchte, dass der gesamte Datenverkehr für beide Domains zu https://www.my-example.com geht , für das ich ein SSL-Zertifikat habe. Ich habe kein SSL-Zertifikat für die Domain myexample.com.

Ich habe http://myexample.com , http://www.myexample.com , http://my-example.com und http://www.my-example.com, die alle zu https: // www umleiten . my-example.com ohne Probleme. Wenn ich jedoch eine Weiterleitung für https://myexample.com oder https://www.myexample.com einrichte, wird vor der Weiterleitung nach dem SSL-Zertifikat gesucht, sodass ich immer ein Zertifikat erhalte Error.

Gibt es eine Möglichkeit, die Umleitung durchzuführen, ohne dass das SSL nach der Nicht-SSL-Domäne sucht, von der ich wegleite?

Der relevante Teil meiner Konfigurationsdatei:

frontend www-https
   bind xxx.xxx.xxx.xxx:443 ssl crt /etc/ssl/private/www.my-example.com.pem
   reqadd X-Forwarded-Proto:\ https
   redirect prefix https://www.my-example.com code 301 if { hdr(host) -i myexample.com }
   redirect prefix https://www.my-example.com code 301 if { hdr(host) -i www.myexample.com }
   default_backend www-backend
Ben Holness
quelle
16
Stellen Sie sich für einen Moment vor, wie schlecht es für ein MITMed wäre, für einen Moment https://www.paypal.com/umgeleitet zu https://www.not-paypal.com/werden, und Sie haben Ihre Antwort. SSL-Zertifikate sind heutzutage kostenlos - holen Sie sich eines für Ihre andere Domain.
Ceejayoz
Wie bei @ceejayoz erwähnt, erhalten Sie einfach ein kostenloses Zertifikat für die andere Domain.
Moshe Katz
Ich habe das jetzt getan, ich habe mich nur gefragt, ob es notwendig ist oder ob es eine Möglichkeit gibt, es so zu konfigurieren, wie ich es für Nicht-SSL getan habe, bevor ich versucht habe, herauszufinden, wie man mehr als ein Zertifikat in der Haproxy-Konfiguration hat (I ' Ich bin weit weg von einem Experten!).
Ben Holness
@BenHolness Sie können ein Multi-Domain-Zertifikat erhalten (Let's Encrypt unterstützt dies vollständig), wenn Sie möchten.
Ceejayoz

Antworten:

20

Die Umleitung erfolgt auf HTTP-Ebene, dh nachdem die SSL-Verbindung hergestellt wurde. Da das Herstellen der SSL-Verbindung das Überprüfen des Zertifikats umfasst, ist es nicht möglich, die Zertifikatprüfung auf Weiterleitungen zu umgehen.

Steffen Ullrich
quelle