it-swarm.com.ru

Что именно означает "каждый сертификат SSL требует выделенного IP"?

Я прочитал немного о сертификатах SSL, и в частности я прочитал, что сертификат SSL "требует выделенного IP-адреса". Теперь я не уверен в значении этого; Означает ли это, что сертификат требует выделенного IP-адреса, отдельного от IP-адреса, используемого для обычной HTTP-связи, или просто не может использовать IP-адрес совместно с другими SSL-сертификатами?

Чтобы уточнить, у меня есть VPS с выделенным IP-адресом. На VPS размещается довольно много разных сайтов, включая несколько поддоменов основного сайта, но только для основного сайта и поддоменов требуется SSL. Могу ли я просто приобрести SSL-сертификат для * .example.com, используя мой текущий IP-адрес, или мне нужно получить один, отдельный от других сайтов на VPS? Или, что еще хуже, мне нужно получить один, отдельный от всего HTTP-трафика на сервере? Имейте в виду, что ни один из других сайтов не нуждается в SSL.

Спасибо за любые разъяснения по теме.


Правка: некоторые источники для моих забот:

http://symbiosis.bytemark.co.uk/docs/symbiosis.html#ch-ssl-hosting

Нужно ли выделенный IP-адрес для установки SSL-сертификата?

23
Hubro
  1. Там нет такого понятия, как «сертификат SSL». Термин вводит в заблуждение. Сертификаты X.509 могут выдаваться для разных целей (как определено их «свойствами» использования ключей и расширенного использования ключей), в частности для защиты сеансов SSL/TLS.

  2. Сертификаты ничего не требуют в отношении сокетов, адресов и портов, поскольку сертификаты являются чистыми данными. 

  3. При защите некоторого соединения с TLS вы обычно используете сертификат для аутентификации сервера (а иногда и клиента). Для каждого IP/порта существует один сервер, поэтому обычно для сервера нет проблем с выбором того, какой сертификат использовать. 

    HTTPS является исключением - несколько разных доменных имен могут ссылаться на один IP, и клиент (обычно браузер) подключается к одному и тому же серверу для разных доменных имен. Доменное имя передается на сервер в запросе, который идет после TLS рукопожатие.

    Вот где возникает проблема - веб-сервер не знает, какой сертификат представить. Для решения этой проблемы в TLS было добавлено новое расширение с именем SNI (индикация имени сервера). Однако не все клиенты поддерживают это. Так что, в общем, неплохо иметь выделенный сервер для каждого IP/порта на домен. Другими словами, каждый домен, к которому клиент может подключиться с использованием HTTPS, должен иметь свой собственный IP-адрес (или другой порт, но это не обычно). 

35

Сертификаты SSL не требуют выделенного IP-адреса. Сертификаты SSL хранят так называемое общее имя . Браузер интерпретирует это общее имя как DNS-имя сервера, с которым они разговаривают. Если общее имя не соответствует DNS-имени сервера, с которым общается браузер, браузер выдаст предупреждение.

Вы можете получить так называемый подстановочный сертификат , который будет допустим для всех хостов в определенном домене.

5
Oswald

... в ответ на ответ @ Евгения с дополнительной информацией о проблеме совместимости ...

Согласно эта страница от namecheap.com SNI не работает на:

  • Windows XP + любая версия Internet Explorer (6,7,8,9)
  • Internet Explorer 6 или более ранняя версия
  • Safari в Windows XP
  • Браузер BlackBerry
  • Windows Mobile до 6,5
  • Браузер Nokia для Symbian хотя бы на Series60
  • Opera Mobile для Symbian хотя бы на Series60

Веб-сайт все еще будет доступен через HTTPS, но появится ошибка несоответствия сертификата.

Таким образом, когда мы вступаем в 2016 год, я рискну высунуть голову и сказать: «Если вы все равно создаете современный веб-сайт (не поддерживает старые браузеры), и если проект настолько мал, что он Я не могу позволить себе выделенный IP-адрес, вы, вероятно, будете в порядке, полагаясь на SNI. " Конечно, есть тысячи экспертов, которые не согласны с этим, но мы говорим о том, чтобы быть практичным, а не совершенным.

3
JoshuaDavid

Имя общего сертификата ssl должно соответствовать имени домена. У вас нет никаких реквизитов по ip-адресу, если только это не ограничение, наложенное поставщиком сертификатов или программным обеспечением http-сервера.

Edit: заглядывая в Интернет, кажется, что слух распространился, потому что плагин Apache ssl не имеет (по крайней мере, его не было в 2002 году) какого-либо механизма для использования другого сертификата, основанного на имени хоста. В таком случае вам придется запустить два разных веб-сервера Apache на двух разных IP-адресах.

В любом случае, в вашей конфигурации не должно возникнуть проблем с использованием только одного IP-адреса, поскольку вам не нужно использовать два разных сертификата (поскольку вы планируете использовать подстановочный сертификат).

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

Edit 2: справочная документация Apache:

http://httpd.Apache.org/docs/2.2/vhosts/name-based.html

Вроде как сейчас (Apache> = 2.2.12) он поддерживается

0
pqnet