Чи потрібен кожному субдомену власний сертифікат SSL?


41

Я створюю сервер websocket, на якому буде жити ws.mysite.example. Я хочу, щоб сервер веб-сокетів був зашифрований SSL, а також domain.exampleбув зашифрований SSL. Чи потрібно купувати новий сертифікат для кожного створеного субдомену? Чи потрібна спеціальна IP-адреса для кожного створеного піддомену? У мене, ймовірно, буде більше одного піддомену.

Я використовую NGINX та Gunicorn, що працюють на Ubuntu.

Відповіді:


44

Я відповім на це в два кроки ...

Вам потрібен сертифікат SSL для кожного субдомену?

Так і Ні, це залежить. Скажімо, ваш стандартний сертифікат SSL для одного домену www.domain.example. Існують різні типи сертів, які можна відмовитися від стандартних однодоменних cert: wildcard та certs з декількома доменами.

  • Сертифікат підказки буде виданий на щось подібне, *.domain.exampleі клієнти вважатимуть це дійсним для будь-якого домену, який закінчується domain.example, наприклад, www.domain.exampleабо ws.domain.example.

  • Кілька доменів Серт дійсно в протягом заздалегідь визначеного списку доменних імен. Це робиться за допомогою поля альтернативного імені суб'єкта cert. Наприклад, ви можете сказати CA, що ви хочете багатодоменний cert для domain.exampleі ws.mysite.example. Це дозволить використовувати його для обох доменних імен.

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

Чи потрібен виділений IP для кожного субдомену?

Знову ж таки, це так і ні ... все залежить від вашого сервера веб / додатків. Я хлопець Windows, тому відповім на прикладах IIS.

  • Якщо ви працюєте з IIS7 або старішою версією, ви змушені прив’язувати SSL-серти до IP, і ви не можете мати декілька цертів, присвоєних одному IP-адресу. Це призводить до того, що вам потрібно мати різний IP для кожного піддомену, якщо ви використовуєте виділений сервер SSL для кожного піддомену. Якщо ви використовуєте багатодоменний cert або wildcrt cert, тоді ви можете піти з єдиного IP, оскільки у вас буде лише один сервер SSL.

  • Якщо ви працюєте з IIS8 або новішою версією, то це стосується того ж. Однак IIS8 + включає підтримку чогось, що називається Вказівка ​​Імені Сервера (SNI). SNI дозволяє прив’язувати SSL-серт до імені хоста, а не до IP. Отже, ім'я хоста (ім'я сервера), яке використовується для подання запиту, використовується для вказівки, до якого запиту повинен бути сервер SSL, який повинен використовувати IIS.

  • Якщо ви використовуєте єдиний IP-адресу, ви можете налаштувати веб-сайти, щоб відповідати на запити конкретних імен хостів.

Я знаю, що Apache та Tomcat також мають підтримку SNI, але я їх недостатньо знайомий, щоб знати, які версії його підтримують.

Нижня лінія

Залежно від вашої програми / веб-сервера та того, який тип сертифікатів SSL ви можете отримати, буде диктувати ваші параметри.


Я використовую gunicorn та nginx на Ubuntu.
користувач974407

У цьому випадку SNI повинен бути доступний до тих пір, поки OpenSSL (для nginx) дотримувався підтримки SNI. За посиланням у відповіді GomoX.
pkeenan

Деякі сертифікати єдиного субдомену перераховують основний домен як альтернативу, тому ви можете знайти www.domain.com та domain.com на одному cert на одній IP-адресі. Будьте уважні, враховуючи вашу цільову аудиторію, коли розглядатимете SNI: IE на XP не підтримує це, що вплине на вас з деякими корпоративними користувачами, а також на старих браузерах мобільних пристроїв, таких як Android Android, принаймні до 2.3.5, що вам потрібно врахувати. якщо ви орієнтовані на мобільні пристрої (тут багато Android-пристроїв, де працює старі версії).
Девід Спіллетт

@pkeenan - Було б добре, якби відповідь була оновлена, щоб відображати технічні характеристики, які підтримують імена хостів і домени без імен хостів - helpdesk.ssls.com/hc/en-us/articles/…
Мотивовано

> клієнти вважатимуть це дійсним для будь-якого домену, який закінчується на "domain.com", наприклад "www.domain.com" або "ws.domain.com". Це приводить мене до думки, що це також би було справедливим abc.def.domain.com, це теж так?
Джефф

7

Ви можете отримати сертифікат для кожного субдомену, сертифікат декількох субдоменів або сертифікат підстановки (для *.yoursite.example).

Зазвичай вони коштують трохи більше, ніж звичайні сертифікати, і тому, що ви ділитеся одним сертифікатом, вони, як правило, не найкращий варіант з точки зору безпеки, якщо ви не розміщуєте anything.mydomain.exampleтип програми, де вони є єдиним можливим вибором.

Також вам не потрібно декілька IP-адрес, якщо у вас є веб-сервер, що підтримує SNI . З цього приводу, SNI підтримується лише в сучасних браузерах (IE6 і нижче не працюватимуть з ним). Останні версії Nginx та Apache прозоро підтримують SNI (просто додайте віртуальні хости, що підтримуються SSL).


Що ви маєте на увазі під "не найкращим варіантом з точки зору безпеки"?
Мотивовано

4
Один сертифікат, який надається всім вашим хостам, перетворює будь-яке порушення сертифіката на загрозу безпеці на рівні домену, а не просто впливає на той субдомен, до якого сертифікат був доданий. Наприклад, сертифікат, використовуваний для www.yoursite.com, який є встановленням WordPress, був би таким самим, як і сертифікат для Payment.yoursite.com, який є захищеною заявою на обробку кредитної картки. Якщо перший протікає, другий порушений.
GomoX

0

Вам або знадобиться окремий серт для кожного піддомену, або ви можете придбати символ cert ( *.domain.example) - дорожче, але має сенс, якщо ви розміщуєте багато субдоменів.

Що стосується IP-адрес, це залежить від налаштування сервера. Ви можете використовувати правила імені хоста для обслуговування кількох сайтів з одного IP-адреси або використовувати унікальні IP-адреси для кожного. Для обох методів є плюси і мінуси.

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