Czy można przekierować połączenie https przed sprawdzeniem protokołu SSL za pomocą haproxy?

11

Mam dwie domeny myexample.comi my-example.com. Chcę, aby cały ruch z dowolnej domeny był kierowany na https://www.my-example.com , dla którego mam certyfikat SSL. Nie mam certyfikatu SSL dla domeny myexample.com.

Mam http://myexample.com , http://www.myexample.com , http://my-example.com i http://www.my-example.com wszystkie przekierowujące na https: // www. my-example.com bez problemu, jednak kiedy skonfiguruję przekierowanie dla https://myexample.com lub https://www.myexample.com , przed przekierowaniem sprawdza ich certyfikat SSL, więc zawsze otrzymuję certyfikat błąd.

Czy istnieje sposób na wykonanie przekierowania bez sprawdzania protokołu SSL w domenie innej niż SSL, z której przekierowuję?

Odpowiednia część mojego pliku konfiguracyjnego:

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
źródło
16
Wyobraź sobie przez chwilę, jak źle byłoby, gdyby MITMed https://www.paypal.com/mógł być https://www.not-paypal.com/przez chwilę przekierowywany, a otrzymasz odpowiedź. Certyfikaty SSL są obecnie bezpłatne - zdobądź jeden dla drugiej domeny.
ceejayoz
Jak wspomniano w @ceejayoz, po prostu zdobądź bezpłatny certyfikat dla drugiej domeny.
Moshe Katz,
Zrobiłem to teraz, zastanawiałem się tylko, czy jest to konieczne lub czy istnieje sposób, aby to skonfigurować tak jak w przypadku non-ssl, zanim spróbowałem wymyślić, jak mieć więcej niż jeden certyfikat w konfiguracji haproxy (ja ' daleko od eksperta!).
Ben Holness,
@BenHolness Możesz uzyskać certyfikat wielu domen (Let's Encrypt w pełni to obsługuje), jeśli chcesz.
ceejayoz

Odpowiedzi:

20

Przekierowanie odbywa się na poziomie HTTP, tj. Po ustanowieniu połączenia SSL. Ponieważ nawiązanie połączenia SSL obejmuje sprawdzenie poprawności certyfikatu, nie można pominąć sprawdzania certyfikatu pod kątem przekierowań.

Steffen Ullrich
źródło