Vraag Heeft elke server achter een load balancer een eigen SSL-certificaat nodig?


Als u 5 webservers achter een load-balancer (zoals haproxy) hebt en inhoud voor hetzelfde domein serveert, heeft u SSL-certificaten nodig voor alle servers of kunt u hetzelfde certificaat gebruiken op elke server?

Ik weet dat je alle SSL-verzoeken op een specifieke server kunt plaatsen, maar daarvoor zijn gedistribueerde sessie-info nodig en de hoop dat dit niet gebeurt.


60
2017-09-25 16:08


oorsprong




antwoorden:


Als u 5 webservers achter een load balancer hebt (...)   heb je SSL-certificaten nodig voor alle servers,

Het hangt er van af.

Als u uw taakverdeling uitvoert op de TCP- of IP-laag (OSI-laag 4/3, a.k.a L4, L3), dan moeten alle HTTP-servers het SSL-certificaat hebben geïnstalleerd.

Als u de balans op de HTTPS-laag (L7) laadt, installeert u gewoonlijk alleen het certificaat op de load balancer en gebruikt u gewoon niet-gecodeerde HTTP via het lokale netwerk tussen de load balancer en de webservers (voor de beste prestaties op de server). webservers).

Als je een ... hebt groot installatie, dan bent u mogelijk bezig met internet -> L3 load balancing -> laag van L7 SSL-concentrators -> loadbalancers -> laag van L7 HTTP-applicatieservers ...

Willy Tarreau, de auteur van HAProxy, heeft een heel mooi overzicht van de canonieke manieren van taakverdeling HTTP / HTTPS.

Als u een certificaat op elke server installeert, zorg er dan voor dat u een certificaat krijgt dat dit ondersteunt. Normaal gesproken kunnen certificaten op meerdere servers worden geïnstalleerd, op voorwaarde dat de servers alleen verkeer voor een Fully Qualified Domain Name serveren. Maar controleer wat u koopt, certificaatuitgevers kunnen een verwarrende productportfolio hebben ...


62
2017-09-25 16:30



U kunt nu certificaten met Subject Alternative Names van veel emittenten kopen. Het SAN-veld staat een certificaat toe dat geldig is voor meerdere FQDN's. WAARSCHUWING ... Er kunnen enkele problemen zijn met oudere webclients (IE6!), In sommige gevallen zal de client het SAN-kenmerk niet lezen als het Subject-kenmerk een ongeldige FQDN heeft. - Ryan Fisher
Plus 1 om te linken naar dat uitstekende artikel van Willy Tarreau. - Nathan Hartley
In middelgrote tot grote installaties heeft het uitvoeren van de SSL-offloading op Big IP of een andere load-balancer (tweede optie hierboven vermeld) de voordelen dat het sneller, meer schaalbaar, minder gecompliceerd (meestal één certificaat op LB) en minder duur is vanaf het certificaat licentiekant (multi-domain en SAN-certs worden prijzig). - Darrell Teague


U zou op elke server hetzelfde certificaat moeten kunnen gebruiken. Als uw website www.gathright.com is, zou u een certificaat moeten kunnen kopen voor die FQDN. Vervolgens installeert u het op elk van uw 5 servers achter de balancer.

U kunt ook een afzonderlijke cert voor elke webserver krijgen, maar 'www.gathright.com' opnemen als een 'Alternatieve onderwerpnaam', wat betekent dat elk van de 5 certificaten geldig is voor SSL voor die algemene FQDN evenals SSL naar de specifieke server-FQDN's.


13
2017-09-25 16:18



Om dit antwoord te verduidelijken, installeert u de cert op de server die de aanvraag heeft gegenereerd. Vervolgens exporteert u het certificaat van die server samen met de private sleutel om het op de andere servers te importeren. - Charles
D'oh! Ja, ik vergat te vermelden dat je de private sleutel moet exporteren. Bedankt, Charles. - Ryan Fisher
Maar als ik SAN-certs op elke server gebruik, hebben ze dan allemaal dezelfde privésleutel nodig? - anschoewe
@anschoewe, nee Ze zouden elk hun eigen privésleutel hebben en je zou x5 de prijs moeten betalen als je 5 computers hebt. - Alexis Wilke
@AlexisWilke - niet zeker wat dat betekent: als ze een SAN cert gebruiken, hebben ze maar één cert nodig, en dus één sleutel en dus één prijs. SAN-certificaten kunnen op meerdere servers worden gebruikt om een ​​of meer domeinen te bedienen; de prijs stijgt bij het toevoegen domeinen, niet tijdens het toevoegen servers - dwanderson


JA, u kunt hetzelfde certificaat en de bijbehorende persoonlijke sleutel gebruiken op al uw servers als deze zich achter een load-balancer of omgekeerde proxy voor load-balancing bevinden en als ze allemaal inhoud voor hetzelfde domein weergeven.

Certificaten, indien ondertekend door een certificeringsinstantie, beweren dat de certificeringsinstantie de naam vermeld op het certificaat. Voor certificaten voor websites betekent dat de domeinnaam van de website. Uw browser verwacht dat de server waarmee het spreekt, als het over HTTPS spreekt, een certificaat presenteert dat hetzelfde bevat naam als de domeinnaam waarmee de browser denkt te praten. (Het is bijvoorbeeld niet waarschijnlijk dat VeriSign het Hacker Joe-certificaat voor bankofamerica.com ondertekent. Dus zelfs als Hacker Joe erin slaagt om het verkeer tussen u en bankofamerica.com te onderscheppen, heeft Hacker Joe geen ondertekend certificaat voor bankofamerica.com en uw browser zal overal rode rode waarschuwingsvlaggen opzetten.)

Het gaat erom dat het naam op het certificaat komt overeen met de domeinnaam waarmee de browser denkt te praten. U kunt hetzelfde certificaat (met bijbehorende persoonlijke sleutel) met de juiste naam gebruiken op meerdere webservers in een webcluster, mits ze zich achter een load balancer bevinden.

U kunt ook een load-balancer met SSL beëindigen, in welk geval u het certificaat (met bijbehorende privésleutel) op de load balancer zou gebruiken, en de webservers geen certificaten nodig zouden hebben omdat ze niets te maken zouden hebben met de SSL.


11
2018-04-27 13:44





Onze opzet heeft heel goed gewerkt:

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

Op deze manier pond ontsleutelt het verkeer, vanaf hier is alles recht http. Voordelen: minder configuratie op de webservers, één tool voor elke taak. U kunt de CPU op de pondmachine maximaal benutten en de webservers "normaal" houden. U moet ten minste twee van elk krijgen (pond, haproxy, webservers), als uptime belangrijk is.


5
2017-12-08 21:02



Dit gaat er ook van uit dat uw backend-computers zich op een veilig privé-netwerk bevinden. In de cloud is dat niet altijd het geval ... - Alexis Wilke


AFAIR, je kunt dezelfde cert gebruiken op elke server. U kunt ook een SSL-accelerator implementeren en al het SSL-verkeer hiernaar verplaatsen.


1
2017-09-25 16:17