4 votes

Quelle est la technologie qui sous-tend le protocole SSL basé sur le nom d'hôte (plusieurs serveurs virtuels SSL sur une seule adresse IP) ?

Fournisseur PaaS bien connu Heroku offre de multiples solutions au problème des SSL. L'une d'entre elles est un produit appelé SSL basé sur le nom d'hôte

Il ne s'agit pas de SNI. Ils prétendent qu'il fonctionne sur tous les navigateurs et dans toutes les configurations, mais qu'il présente d'autres inconvénients, notamment (en citant la documentation) :

  • Le SSL basé sur le nom d'hôte ne fonctionnera pas avec les domaines racine car il repose sur l'alias CNAME de vos noms de domaine personnalisés.

  • Le SSL par nom d'hôte ne fonctionne qu'avec un seul domaine. Par exemple, www.domain.com fonctionnera, mais si un deuxième certificat pour secure.domain.com est ajouté à l'application, il ne fonctionnera pas.

  • Notre offre SSL basée sur le nom d'hôte supprime actuellement certains en-têtes HTTP ; cela peut être un problème lorsque votre application a besoin de connaître l'IP du client, par exemple.

En utilisant cette solution personnalisée, Heorku peut servir plusieurs sites SSL sur une seule adresse IP et, comme ils l'affirment, elle fonctionnera sur n'importe quel support.

Quelqu'un peut-il expliquer l'aspect technique de cette solution et la technologie sous-jacente à ce produit ?

7voto

Michael Gorsuch Points 2348

Ce n'est pas tout à fait ce que vous pensez. Heroku ne sert pas plusieurs certificats SSL sur une seule adresse IP. Si vous effectuez un nslookup sur différents déploiements SSL par nom d'hôte, par exemple, vous constaterez qu'ils pointent tous vers une adresse IP différente. Amazon ELB . C'est là que réside la sauce secrète.

Lorsqu'un client demande un SSL basé sur le nom d'hôte, un ELB est mis à sa disposition et il lui est demandé de créer un CNAME vers le nom d'hôte de cet ELB. Ces ELB se connectent à nouveau au maillage de routage Heroku comme il se doit.

J'espère que cela clarifie certaines choses. N'hésitez pas à poser d'autres questions.

0voto

the-wabbit Points 40039

Je ne sais pas, je ne peux donc que spéculer. Cela pourrait résulter d'une interaction entre les serveurs DNS et les serveurs HTTP d'Heroku. Le flux pourrait être le suivant :

  1. Le client demande https://www.yourdomain.com
  2. Le résolveur DNS du client résout www.yourdomain.com en tant que CNAME vers un RR sur les serveurs de noms d'heroku (par exemple app1234.apps.heroku.com).
  3. Le résolveur DNS du client interroge le serveur de noms pour apps.heroku.com sur le A RR de app1234.apps.heroku.com.
  4. Le serveur de noms pour apps.heroku.com fournit une adresse et informe le serveur web correspondant d'un client à l'adresse IP 1.2.3.4 qui demande l'hôte www.yourdomain.com.
  5. Le client initie une connexion SSL avec app1234.apps.heroku.com.
  6. Le serveur HTTPS, sachant que le client de 1.2.3.4 va demander www.yourdomain.com comme site, sélectionne le certificat correct pour www.yourdomain.com et procède à la poignée de main SSL.

Le flux peut être interrompu dans certains scénarios, notamment lorsque de nombreuses demandes pour différents sites proviennent d'une seule adresse IP (comme ce serait le cas pour les clients situés derrière un proxy ou une passerelle NAT), mais cela pourrait être "équilibré" en répartissant les demandes pour différents hôtes de destination à partir d'une seule IP source entre de nombreux serveurs HTTPS, de sorte qu'un seul serveur HTTPS n'aurait aucune ambiguïté au moment de décider du certificat à choisir pour un client donné.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X