Chaque serveur derrière un équilibreur de charge a-t-il besoin de son propre certificat SSL?

66

Si vous avez 5 serveurs Web derrière un équilibreur de charge (tel que haproxy) et qu'ils servent du contenu pour le même domaine, avez-vous besoin de certificats SSL pour tous les serveurs ou pouvez-vous utiliser le même certificat sur chaque serveur?

Je sais que vous pouvez mettre toutes les demandes SSL sur un serveur spécifique, mais cela nécessite des informations de session distribuées et en espérant ne pas en arriver là.

Derek Gathright
la source

Réponses:

66

Si vous avez 5 serveurs Web derrière un équilibreur de charge (...), avez-vous besoin de certificats SSL pour tous les serveurs,

Ça dépend.

Si vous effectuez votre équilibrage de charge sur la couche TCP ou IP (couche OSI 4/3, également appelée L4, L3), alors oui, le certificat SSL devra être installé sur tous les serveurs HTTP.

Si vous équilibrez la charge sur la couche HTTPS (L7), vous installeriez généralement le certificat sur l’équilibreur de charge uniquement et utilisiez un protocole HTTP non chiffré sur le réseau local entre l’équilibreur de charge et les serveurs Web (pour de meilleures performances sur les serveurs Web). serveurs web).

Si vous avez une grande installation, alors vous faites peut-être Internet -> équilibrage de charge L3 -> couche de concentrateurs SSL L7 -> équilibreurs de charge -> couche de serveurs d’applications HTTP L7 ...

Willy Tarreau, l'auteur de HAProxy, a un très bon aperçu des méthodes canoniques d'équilibrage de charge HTTP / HTTPS .

Si vous installez un certificat sur chaque serveur, veillez à obtenir un certificat qui le prend en charge. Normalement, les certificats peuvent être installés sur plusieurs serveurs, à condition que tous les serveurs servent du trafic pour un seul nom de domaine pleinement qualifié. Mais vérifiez ce que vous achetez, les émetteurs de certificats peuvent avoir un portefeuille de produits déroutant ...

Jesper Mortensen
la source
1
Vous pouvez maintenant acheter des certificats avec des noms de sujets différents auprès de nombreux émetteurs. Le champ SAN autorise un certificat valide pour plusieurs noms de domaine complets. AVERTISSEMENT ... Il peut y avoir des problèmes avec les clients Web plus anciens (IE6!). Dans certains cas, le client ne lira pas l'attribut SAN si l'attribut Objet a un nom de domaine complet non valide.
Ryan Fisher
4
Plus 1 pour avoir relié cet excellent article de Willy Tarreau.
Nathan Hartley
Dans les installations moyennes à grandes, le déchargement SSL sur Big IP ou un autre équilibreur de charge (deuxième option ci-dessus) présente les avantages d'être plus rapide, plus évolutif, moins compliqué (généralement un certificat sur LB) et moins coûteux à partir du certificat. côté licence (les certificats multi-domaines et SAN deviennent coûteux).
Darrell Teague
15

Vous devriez pouvoir utiliser le même certificat sur chaque serveur. Si votre site Web est www.gathright.com, vous devriez pouvoir acheter un certificat pour ce nom de domaine complet. Ensuite, vous l'installez sur chacun de vos 5 serveurs derrière l'équilibreur.

Vous pouvez également obtenir un certificat distinct pour chaque serveur Web, mais inclure "www.gathright.com" en tant que "Autre nom du sujet", ce qui signifie que chacun des 5 certificats sera valide pour SSL dans ce nom de domaine complet, ainsi que SSL. vers les noms de domaine complets du serveur.

Ryan Fisher
la source
6
Pour clarifier cette réponse, vous allez installer le certificat sur le serveur qui a généré la demande. Vous devez ensuite exporter le certificat de ce serveur avec la clé privée afin de l'importer sur les autres serveurs.
Charles
D'oh! Oui, j'ai oublié de mentionner que vous devez exporter la clé privée. Merci Charles.
Ryan Fisher
Mais si j'utilise des certificats SAN sur chaque serveur, ont-ils tous besoin de la même clé privée?
anschoewe
@anschoewe, no. Ils auraient chacun leur propre clé privée et vous auriez à payer x5 le prix si vous avez 5 ordinateurs.
Alexis Wilke
1
@AlexisWilke - je ne sais pas ce que cela signifie: s'ils utilisent un cert SAN, ils n'ont besoin que d'un cert, et donc d'une clé, et donc d'un prix. Les certificats SAN peuvent être utilisés sur plusieurs serveurs pour desservir un ou plusieurs domaines. le prix augmente lors de l'ajout de domaines , pas lors de l'ajout de serveurs
dwanderson
12

OUI , vous pouvez utiliser le même certificat et la clé privée associée sur tous vos serveurs, s’ils se trouvent derrière un équilibreur de charge ou un proxy inverse, et s’ils servent tous du contenu pour le même domaine.

Les certificats, lorsqu'ils sont signés par une autorité de certification, indiquent que celle-ci a vérifié le nom indiqué sur le certificat. Pour les certificats de sites Web, cela signifie le nom de domaine du site Web. Votre navigateur s’attend à ce que le serveur avec lequel il discute, s’il parle via HTTPS, présente un certificat portant le même nom que le nom de domaine avec lequel le navigateur pense qu’il parle. (Par exemple, VeriSign ne signera probablement pas le certificat de Hacker Joe pour bankofamerica.com. Ainsi, même si Hacker Joe parvient à intercepter le trafic entre vous et bankofamerica.com, Hacker Joe n'aura pas de certificat signé pour bankofamerica.com et votre navigateur. mettra en place de grands drapeaux d'avertissement rouges partout.)

L'important est que le nom du certificat corresponde au nom de domaine avec lequel le navigateur pense qu'il parle. Vous pouvez utiliser le même certificat (avec la clé privée associée) portant le nom correct sur plusieurs serveurs Web d'un cluster Web, tant qu'ils se trouvent derrière un équilibreur de charge.

Vous pouvez également utiliser un équilibreur de charge se terminant par SSL, auquel cas vous utiliseriez le certificat (avec la clé privée associée) sur l'équilibreur de charge, et les serveurs Web n'auraient pas besoin de certificats, car ils n'auraient rien à voir avec le SSL.

Yfeldblum
la source
6

Notre configuration a très bien fonctionné:

https trafic
     |
   pound
     |
http traffic
     |
  haproxy
     |
http traffic 
     |
web server 1 ... web server n

De cette façon, la livre décrypte le trafic, à partir de là, tout est en http directe. Avantages: moins de configuration sur les serveurs Web, un outil pour chaque travail. Vous pouvez maximiser le nombre de processeurs sur la machine, et garder les serveurs Web "normaux". Vous devez obtenir au moins deux de chaque (livre, haproxy, serveurs Web), si la disponibilité est importante.

jotango
la source
2
Cela suppose également que vos ordinateurs back-end sont sur un réseau privé sécurisé. Dans le nuage, ce n'est pas toujours le cas ...
Alexis Wilke
3

AFAIR, vous pouvez utiliser le même certificat sur chaque serveur. Vous pouvez également implémenter un accélérateur SSL et lui décharger tout le trafic SSL.

joeqwerty
la source