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


41

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

Я использую NGINX и Gunicorn, работающие на Ubuntu.

Ответы:


44

Я отвечу на это в два этапа ...

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

Да и нет, это зависит. Ваш стандартный SSL-сертификат будет, скажем, для одного домена www.domain.example. Существуют различные типы сертификатов, которые вы можете оставить в стороне от стандартного сертификата с одним доменом: групповые сертификаты и сертификаты с несколькими доменами.

  • Джокер сертификат будет выдаваться на то , как *.domain.exampleи клиенты будут относиться к этому , как справедливо для любого домена , которое заканчивается domain.example, например, www.domain.exampleили ws.domain.example.

  • Несколько доменов серты действительно в течение заранее определенного списка доменных имен. Это делается с помощью поля Subject Alternative Name сертификата. Например, вы можете указать CA, что вы хотите получить многодоменный сертификат для domain.exampleи ws.mysite.example. Это позволило бы использовать его для обоих доменных имен.

Если ни один из этих вариантов не работает для вас, вам потребуется два разных сертификата SSL.

Нужен ли выделенный IP для каждого субдомена?

Опять же, это да и нет ... все зависит от вашего веб-сервера / сервера приложений. Я парень из Windows, поэтому я отвечу на примерах IIS.

  • Если вы используете IIS7 или более раннюю версию, вы вынуждены привязать SSL-сертификаты к IP-адресу, и вы не можете назначить несколько сертификатов одному IP-адресу. Это приводит к необходимости иметь разные IP-адреса для каждого субдомена, если вы используете выделенный сертификат SSL для каждого субдомена. Если вы используете многодоменный сертификат или сертификат подстановочного знака, то вы можете избежать использования одного IP-адреса, поскольку у вас есть только один сертификат SSL для начала.

  • Если вы используете IIS8 или более позднюю версию, то же самое относится и к. Тем не менее, IIS8 + включает в себя поддержку чего-то, называемого указанием имени сервера (SNI). SNI позволяет привязывать сертификат SSL к имени хоста, а не к IP. Таким образом, имя хоста (имя сервера), которое используется для создания запроса, используется для указания того, какой SSL-сертификат должен использовать IIS для запроса.

  • Если вы используете один IP-адрес, то вы можете настроить веб-сайты для ответа на запросы конкретных имен хостов.

Я знаю, что Apache и Tomcat также поддерживают SNI, но я недостаточно знаком с ними, чтобы знать, какие версии его поддерживают.

Нижняя граница

В зависимости от вашего приложения / веб-сервера и типа сертификатов SSL, которые вы можете получить, будут диктоваться ваши варианты.


Я использую gunicorn и nginx в Ubuntu.
user974407

В этом случае SNI должен быть доступен до тех пор, пока OpenSSL (для nginx) будет соответствовать поддержке SNI. По ссылке в ответе GomoX.
pkeenan

Некоторые отдельные сертификаты субдоменов указывают основной домен в качестве альтернативы, поэтому вы можете обнаружить, что вы можете использовать www.domain.com и domain.com для одного сертификата на одном IP-адресе. Будьте внимательны, рассматривая целевую аудиторию, принимая во внимание SNI: IE в XP не поддерживает его, что скажется на некоторых корпоративных пользователях, также как и некоторые старые мобильные браузеры, такие как стандартный 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

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

Что касается IP-адресов, это зависит от того, как вы настроили свой сервер. Вы можете использовать правила имени хоста для обслуживания нескольких сайтов с одного и того же IP-адреса или использовать уникальные IP-адреса для каждого из них. Есть плюсы и минусы для обоих методов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.