Чи потрібен кожному серверу, який стоїть за балансиром навантаження, власний сертифікат SSL?


66

Якщо у вас є 5 веб-серверів за балансиром завантаження (наприклад, haproxy), і вони подають вміст для одного домену, чи потрібні вам SSL-сертифікати для всіх серверів, або ви можете використовувати один і той же сертифікат на кожному сервері?

Я знаю, що ви можете розмістити всі SSL запити на певному сервері, але для цього потрібна інформація про розподілену сесію та сподіваюся, що вона не дійде до цього.

Відповіді:


66

Якщо у вас є 5 веб-серверів за балансиром завантаження (...) чи потрібні вам сертифікати SSL для всіх серверів,

Це залежить.

Якщо ви здійснюєте балансування навантаження на рівні TCP або IP (рівень OSI 4/3, він же L4, L3), то так, всі сервери HTTP повинні мати встановлений сертифікат SSL.

Якщо ви завантажуєте баланс на рівень HTTPS (L7), то зазвичай зазвичай встановлюєте сертифікат на балансир завантаження і використовуєте звичайний незашифрований HTTP через локальну мережу між балансиром навантаження та веб-серверами (для найкращої роботи на веб-серверів).

Якщо у вас велика установка, можливо, ви робите Інтернет -> балансування навантаження L3 -> шар концентраторів L7 SSL -> балансири навантаження -> шар серверів додатків L7 HTTP ...

У Віллі Тарре, авторі HAProxy, справді хороший огляд канонічних способів врівноваження навантаження HTTP / HTTPS .

Якщо ви встановите сертифікат на кожному сервері, то обов'язково отримайте сертифікат, який це підтримує. Зазвичай сертифікати можуть бути встановлені на декількох серверах до тих пір, поки всі сервери обслуговують трафік лише для одного Повнокваліфікованого доменного імені. Але перевірте, що ви купуєте, у емітентів сертифікатів може бути заплутаний асортимент продукції ...


1
Зараз ви можете придбати сертифікати з тематичними альтернативними іменами у багатьох емітентів. Поле SAN дозволяє сертифікат, дійсний для декількох FQDN. ПОПЕРЕДЖЕННЯ ... У старих веб-клієнтів (IE6!) Можуть виникнути деякі проблеми, в деяких випадках клієнт не буде читати атрибут SAN, якщо в атрибуті Subject недійсний FQDN.
Райан Фішер

4
Плюс 1 за посилання на чудову статтю Віллі Тарро.
Натан Хартлі

У середніх та великих установах виконання розвантаження SSL на Big IP або іншому балансирі навантаження (другий варіант, перерахований вище) має переваги: ​​швидкість, масштабування, менш складність (як правило, один сертифікат на LB) і дешевша від сертифікату сторона ліцензування (багатодоменні та сертифікати SAN отримують дорогу ціну).
Даррелл Тейг

15

Ви повинні мати можливість використовувати один і той же сертифікат на кожному сервері. Якщо ваш веб-сайт www.gathright.com, ви повинні мати можливість придбати сертифікат для цього FQDN. Потім ви встановлюєте його на кожен із своїх 5 серверів позаду балансира.

Крім того, ви можете отримати окремий серт для кожного веб-сервера, але включити "www.gathright.com" як "Альтернативне ім'я суб'єкта", що означає, що кожен з 5 сертів буде дійсним для SSL для цієї загальної FQDN, а також для SSL до конкретного сервера FQDN.


6
Щоб уточнити цю відповідь, ви встановите cert на сервер, який генерував запит. Потім ви експортуєте cert з цього сервера разом із приватним ключем, щоб імпортувати його на інші сервери.
Чарльз,

D'oh! Так, я забув згадати, що вам потрібно експортувати приватний ключ. Спасибі, Чарльз.
Райан Фішер

Але якщо я використовую сертинг SAN на кожному сервері, чи потрібен кожен для них однаковий приватний ключ?
anschoewe

@anschoewe, ні. У кожного вони будуть свій приватний ключ, і вам доведеться заплатити ціну x5, якщо у вас є 5 комп’ютерів.
Алексіс Вілке

1
@AlexisWilke - не впевнений, що це означає: якщо вони використовують SAN cert, їм потрібен лише один серт, а отже, один ключ, а отже 1 ціна. SAN-серти можуть використовуватися на декількох серверах для обслуговування одного або декількох доменів; ціна зростає при додаванні доменів , а не при додаванні серверів
dwanderson

12

ТАК , ви можете використовувати один і той же сертифікат і пов'язаний приватний ключ на всіх своїх серверах, якщо вони стоять за балансиром завантаження або зворотним проксі-балансувачем завантаження і якщо всі вони подають вміст для одного домену.

Підписи сертифікатів, підписані органом з сертифікації, стверджують, що орган сертифікації підтвердив ім'я, зазначене в сертифікаті. Для сертифікатів для веб-сайтів це означає доменне ім’я веб-сайту. Ваш веб-переглядач очікує, що сервер, з яким він розмовляє, якщо він розмовляє через HTTPS, представляє сертифікат, що має те саме ім’я , що і доменне ім'я, про яке браузер думає, що говорить. (Наприклад, VeriSign, швидше за все, не підпише сертифікат Hacker Joe на bankofamerica.com. Тож навіть якщо Hacker Joe вдасться перехопити трафік між вами та bankofamerica.com, Hacker Joe не матиме підписаного сертифікату для bankofamerica.com та вашого браузера всюди поставлять великі червоні попереджувальні прапори.)

Важливо те, що ім'я сертифіката відповідає доменному імені, яке браузер вважає, що він спілкується. Ви можете використовувати той самий сертифікат (із пов’язаним приватним ключем) з правильним ім'ям на кількох веб-серверах у веб-кластері, якщо вони стоять за балансиром навантаження.

Ви також можете використовувати балансир завантаження, що закінчується SSL; у такому випадку ви використовуєте сертифікат (із пов’язаним приватним ключем) на балансирі завантаження, а веб-серверам не знадобляться сертифікати, оскільки вони не матимуть нічого спільного SSL.


6

Наша установка спрацювала дуже добре:

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

Таким чином фунт розшифровує трафік, звідси все прямо http. Переваги: ​​менша конфігурація на веб-серверах, один інструмент для кожного завдання. Ви можете збільшити максимум процесора на фунтовій машині та підтримувати веб-сервери "нормальними". Ви повинні отримати щонайменше два з кожного (фунт, хапроксі, веб-сервери), якщо важливий час роботи.


2
Це також передбачає, що ваші задні комп’ютери знаходяться в безпечній приватній мережі. У хмарі це не завжди так ...
Алексіс Вілке

3

AFAIR, ви можете використовувати ту саму серт на кожному сервері. Ви також можете реалізувати прискорювач SSL та вивантажувати на нього весь трафік SSL.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.