Est-il possible de rediriger une connexion https avant que SSL ne soit vérifié à l'aide de haproxy?


11

J'ai deux domaines, myexample.comet my-example.com. Je veux que tout le trafic pour l'un ou l'autre domaine soit dirigé vers https://www.my-example.com , pour lequel j'ai un certificat SSL. Je n'ai pas de certificat SSL pour le domaine myexample.com.

J'ai http://myexample.com , http://www.myexample.com , http://my-example.com et http://www.my-example.com tous redirigeant vers https: // www. my-example.com sans problème, cependant lorsque je configure une redirection pour https://myexample.com ou https://www.myexample.com , il vérifie leur certificat SSL avant de rediriger et donc j'obtiens toujours un certificat Erreur.

Existe-t-il un moyen de faire la redirection sans que SSL vérifie le domaine non SSL à partir duquel je redirige?

La partie pertinente de mon fichier de configuration:

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

16
Imaginez un instant à quel point il serait mauvais pour un MITMed https://www.paypal.com/d'être redirigé vers https://www.not-paypal.com/un instant et vous aurez votre réponse. Les certificats SSL sont gratuits ces jours-ci - obtenez-en un pour votre autre domaine.
ceejayoz

Comme @ceejayoz l'a mentionné, obtenez simplement un certificat gratuit pour l'autre domaine.
Moshe Katz

Je l'ai fait maintenant, je me demandais simplement si c'était nécessaire ou s'il y avait un moyen de le configurer comme je l'ai fait pour les non-ssl avant d'essayer de comprendre comment avoir plus d'un certificat dans la configuration haproxy (je '' m loin d'un expert!).
Ben Holness

@BenHolness Vous pouvez obtenir un certificat multi-domaine (Let's Encrypt le supporte entièrement), si vous le souhaitez.
ceejayoz

Réponses:


20

La redirection se fait au niveau HTTP, c'est-à-dire après l'établissement de la connexion SSL. Étant donné que l'établissement de la connexion SSL comprend la validation du certificat, il n'est pas possible de contourner la vérification du certificat pour les redirections.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.