Я создаю сервер websocket, который будет жить на ws.mysite.example
. Я хочу, чтобы сервер веб-сокетов был зашифрован SSL, а также domain.example
быть зашифрованным SSL. Нужно ли мне покупать новый сертификат для каждого создаваемого мной поддомена? Нужен ли мне выделенный IP-адрес для каждого создаваемого мной поддомена? Скорее всего, у меня будет несколько поддоменов.
Я использую NGINX и Gunicorn под Ubuntu.
Я отвечу на это в два этапа ...
Вам нужен сертификат SSL для каждого поддомена?
Да и нет, это зависит от обстоятельств. Ваш стандартный сертификат SSL будет для одного домена, скажем www.domain.example
. Помимо стандартного однодоменного сертификата, вы можете получить разные типы сертификатов: подстановочные знаки и многодоменные сертификаты.
А сертификат wild card будет выдаваться за что-то вроде *.domain.example
и клиенты будут рассматривать это как действительное для любого домена, заканчивающегося на domain.example
, Такие как www.domain.example
или ws.domain.example
.
А многодоменный сертификат действительно для заранее определенного списка доменных имен. Это делается с помощью поля «Альтернативное имя субъекта» сертификата. Например, вы можете сообщить центру сертификации, что вам нужен многодоменный сертификат для 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, которые вы можете получить, будут зависеть ваши варианты.
Вы можете получить сертификат для каждого поддомена, сертификат нескольких поддоменов или подстановочный сертификат (для *.yoursite.example
).
Однако они обычно стоят немного дороже, чем обычные сертификаты, и поскольку вы используете один сертификат, они, как правило, не лучший вариант с точки зрения безопасности, если вы не размещаете anything.mydomain.example
тип приложения, в котором они являются единственным приемлемым выбором.
Вам также не нужно несколько IP-адресов, если у вас есть Веб-сервер с поддержкой SNI. При этом SNI поддерживается только в современных браузерах (IE6 и ниже не будут работать с ним). Последние версии Nginx и Apache прозрачно поддерживают SNI (просто добавьте виртуальные хосты с поддержкой SSL).
Вам понадобится либо отдельный сертификат для каждого поддомена, либо вы можете приобрести групповой сертификат (*.domain.example
) - дороже, но имеет смысл, если у вас много поддоменов.
Что касается IP-адресов, это зависит от того, как вы настроили свой сервер. Вы можете использовать правила имени хоста для обслуживания нескольких сайтов с одного и того же IP-адреса или использовать уникальные IP-адреса для каждого из них. У обоих методов есть свои плюсы и минусы.