Что означает "каждый сертификат 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?
Ответы
Ответ 1
-
Нет такой вещи, как "SSL-сертификат". Этот термин вводит в заблуждение. Сертификаты X.509 могут выдаваться для разных целей (как определено их использованием ключа и использованием расширенного ключа), в частности для обеспечения сеансов SSL/TLS.
-
Сертификаты не требуют ничего в отношении сокетов, адресов и портов, поскольку сертификаты являются чистыми данными.
-
При обеспечении некоторого подключения к TLS обычно используется сертификат для аутентификации сервера (а иногда и клиента). Там один сервер на IP/порт, поэтому обычно нет проблем для сервера, чтобы выбрать, какой сертификат использовать.
HTTPS - исключение — несколько разных доменных имен могут ссылаться на один IP-адрес, а клиент (обычно браузер) подключается к одному и тому же серверу для разных доменных имен. Доменное имя передается серверу в запросе, который отправляет после TLS.
Здесь, где возникает проблема - веб-сервер не знает, какой сертификат представить. Для этого в TLS добавлено новое расширение с именем SNI (идентификация имени сервера). Однако не все клиенты поддерживают его. Поэтому в целом рекомендуется иметь выделенный сервер на каждый IP/порт для каждого домена. Другими словами, каждый домен, к которому клиент может подключиться с использованием HTTPS, должен иметь свой собственный IP-адрес (или другой порт, но это не обычный).
Ответ 2
Сертификаты SSL не требуют выделенного IP-адреса. Сертификаты SSL хранят так называемое общее имя. Браузер интерпретирует это общее имя как DNS-имя сервера, с которым они разговаривают. Если общее имя не соответствует DNS-имени сервера, с которым работает браузер, браузер выдаст предупреждение.
Вы можете получить так называемый групповой сертификат, который допустим для всех хостов в определенном домене.
Ответ 3
... после ответа @Eugene с дополнительной информацией о проблеме совместимости...
Согласно эта страница с 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". Конечно, есть тысячи экспертов, которые бы не согласились с этим, но мы говорим о том, чтобы быть практичным, а не идеальным.
Ответ 4
Имя отправителя сертификата ssl должно совпадать с именем домена. У вас нет никаких требований по IP-адресу, если только это ограничение не наложено поставщиком сертификатов или программным обеспечением сервера http.
Изменить: глядя в Интернет, похоже, что слух был распространен, потому что плагин Apache ssl не имеет (по крайней мере, в 2002 году) никакого механизма для использования другого сертификата на основе имени хоста. В таком сценарии вам придется запускать два разных веб-сервера Apache на двух разных IP-адресах.
В любом случае в вашей конфигурации не должно быть проблем с использованием только одного IP-адреса, потому что вам не нужно использовать два разных сертификата (потому что вы планируете использовать подстановочный знак).
Я бы попытался в любом случае настроить веб-сервер с самоподписанным сертификатом, прежде чем тратить деньги на второй ip или сертификат.
Изменить 2: справочная документация apache:
http://httpd.apache.org/docs/2.2/vhosts/name-based.html
Кажется, что теперь (apache >= 2.2.12) поддерживается