Czy każdy serwer za modułem równoważenia obciążenia potrzebuje własnego certyfikatu SSL?

66

Jeśli masz 5 serwerów WWW za modułem równoważenia obciążenia (takich jak haproxy) i obsługują one zawartość dla tej samej domeny, czy potrzebujesz certyfikatów SSL dla wszystkich serwerów, czy możesz używać tego samego certyfikatu na każdym serwerze?

Wiem, że możesz umieścić wszystkie żądania SSL na określonym serwerze, ale wymaga to informacji o rozproszonej sesji i mam nadzieję, że do tego nie dojdzie.

Derek Gathright
źródło

Odpowiedzi:

66

Jeśli masz 5 serwerów WWW za modułem równoważenia obciążenia (...), czy potrzebujesz certyfikatów SSL dla wszystkich serwerów,

To zależy.

Jeśli wykonujesz równoważenie obciążenia na warstwie TCP lub IP (warstwa OSI 4/3, aka L4, L3), to tak, wszystkie serwery HTTP będą musiały mieć zainstalowany certyfikat SSL.

Jeśli ładujesz równowagę na warstwie HTTPS (L7), wtedy zwykle instalujesz certyfikat na samym module równoważenia obciążenia i używasz zwykłego niezaszyfrowanego HTTP w sieci lokalnej między modułem równoważenia obciążenia i serwerami WWW (w celu uzyskania najlepszej wydajności na serwery internetowe).

Jeśli masz dużą instalację, być może robisz Internet -> równoważenie obciążenia L3 -> warstwa koncentratorów L7 SSL -> równoważenie obciążenia -> warstwa serwerów aplikacji L7 HTTP ...

Willy Tarreau, autor HAProxy, ma naprawdę ładny przegląd kanonicznych sposobów równoważenia obciążenia HTTP / HTTPS .

Jeśli zainstalujesz certyfikat na każdym serwerze, upewnij się, że otrzymałeś certyfikat, który to obsługuje. Zwykle certyfikaty można instalować na wielu serwerach, o ile wszystkie serwery obsługują ruch tylko dla jednej w pełni kwalifikowanej nazwy domeny. Ale sprawdź, co kupujesz, wystawcy certyfikatów mogą mieć mylące portfolio produktów ...

Jesper Mortensen
źródło
1
Możesz teraz kupować certyfikaty z alternatywnymi nazwami podmiotów od wielu wystawców. Pole SAN zezwala na certyfikat, który jest ważny dla wielu nazw FQDN. OSTRZEŻENIE ... Mogą występować pewne problemy ze starszymi klientami WWW (IE6!), W niektórych przypadkach klient nie będzie czytał atrybutu SAN, jeśli atrybut Subject ma nieprawidłową nazwę FQDN.
Ryan Fisher
4
Plus 1 za link do tego doskonałego artykułu Willy'ego Tarreau.
Nathan Hartley,
W średnich i dużych instalacjach odciążanie SSL w Big IP lub innym równoważeniu obciążenia (druga opcja wymieniona powyżej) ma tę zaletę, że jest szybsze, bardziej skalowalne, mniej skomplikowane (zazwyczaj jeden certyfikat na LB) i tańsze od certyfikatu po stronie licencjonowania (certyfikaty dla wielu domen i SAN są drogie).
Darrell Teague,
15

Powinieneś być w stanie używać tego samego certyfikatu na każdym serwerze. Jeśli twoja strona internetowa to www.gathright.com, powinieneś być w stanie kupić certyfikat dla tej nazwy FQDN. Następnie instalujesz go na każdym z 5 serwerów za modułem równoważącym.

Alternatywnie możesz uzyskać osobny certyfikat dla każdego serwera WWW, ale wpisz „www.gathright.com” jako „alternatywną nazwę podmiotu”, co oznacza, że ​​każdy z 5 certyfikatów będzie ważny dla protokołu SSL dla tej ogólnej nazwy FQDN, a także dla protokołu SSL do określonych nazw FQDN serwera.

Ryan Fisher
źródło
6
Aby wyjaśnić tę odpowiedź, zainstalujesz certyfikat na serwerze, który wygenerował żądanie. Następnie wyeksportujesz certyfikat z tego serwera wraz z kluczem prywatnym, aby zaimportować go na inne serwery.
Charles
Nie! Tak, zapomniałem wspomnieć, że musisz wyeksportować klucz prywatny. Dzięki, Charles.
Ryan Fisher
Ale jeśli używam certyfikatów SAN na każdym serwerze, czy każdy z nich potrzebuje tego samego klucza prywatnego?
anschoewe
@anschoewe, no. Każdy z nich miałby swój prywatny klucz, a jeśli miałbyś 5 komputerów, musiałbyś zapłacić x5 ceny.
Alexis Wilke
1
@AlexisWilke - nie jestem pewien, co to znaczy: jeśli używają certyfikatu SAN, potrzebują tylko jednego certyfikatu, a zatem jednego klucza, a zatem 1 ceny. Certyfikatów SAN można używać na wielu serwerach, aby obsługiwać jedną lub więcej domen; cena rośnie przy dodawaniu domen , a nie przy dodawaniu serwerów
dwanderson
12

TAK , możesz używać tego samego certyfikatu i powiązanego klucza prywatnego na wszystkich swoich serwerach, jeśli stoją one za modułem równoważenia obciążenia lub odwrotnym proxy równoważenia obciążenia i jeśli wszystkie obsługują zawartość dla tej samej domeny.

Certyfikaty podpisane przez urząd certyfikacji potwierdzają, że urząd certyfikacji zweryfikował nazwę wymienioną na certyfikacie. W przypadku certyfikatów dla witryn internetowych oznacza to nazwę domeny witryny. Twoja przeglądarka oczekuje, że serwer, z którym rozmawia, jeśli rozmawia przez HTTPS, przedstawia certyfikat o tej samej nazwie co nazwa domeny, z którą przeglądarka myśli, że rozmawia. (Na przykład VeriSign prawdopodobnie nie podpisze certyfikatu Hacker Joe dla bankofamerica.com. Więc nawet jeśli Hacker Joe zdoła przechwycić ruch między tobą a bankofamerica.com, Hacker Joe nie będzie miał podpisanego certyfikatu dla bankofamerica.com i twojej przeglądarki rozwieszą wszędzie duże czerwone flagi ostrzegawcze.)

Liczy się to, że nazwa na certyfikacie odpowiada nazwie domeny, z którą przeglądarka myśli, że rozmawia. Możesz użyć tego samego certyfikatu (z powiązanym kluczem prywatnym) noszącego prawidłową nazwę na wielu serwerach sieciowych w klastrze internetowym, o ile znajdują się one za modułem równoważenia obciążenia.

Możesz także użyć modułu równoważenia obciążenia kończącego SSL, w którym to przypadku użyłbyś certyfikatu (z powiązanym kluczem prywatnym) w module równoważenia obciążenia, a serwery WWW nie potrzebowałyby certyfikatów, ponieważ nie miałyby nic wspólnego z SSL.

yfeldblum
źródło
6

Nasza konfiguracja działa bardzo dobrze:

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

W ten sposób funt odszyfrowuje ruch, odtąd wszystko jest proste http. Zalety: mniejsza konfiguracja na serwerach internetowych, jedno narzędzie dla każdego zadania. Możesz maksymalnie wykorzystać procesor na maszynie funta i utrzymywać serwery sieciowe w „normalnym” stanie. Powinieneś dostać co najmniej dwa z nich (funt, haproxy, serwery sieciowe), jeśli czas pracy jest ważny.

jotango
źródło
2
Zakłada się również, że komputery zaplecza znajdują się w bezpiecznej sieci prywatnej. W chmurze nie zawsze tak jest ...
Alexis Wilke
3

AFAIR, możesz użyć tego samego certyfikatu na każdym serwerze. Możesz także zaimplementować akcelerator SSL i odciążyć do niego cały ruch SSL.

joeqwerty
źródło