3

Самоочевидное название, я думаю.

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

Я думал, что сертификаты x.509 вообще не привязаны к IP-адресам. Есть ли какая-либо техническая причина для такого требования или это просто маркетинговая идея заставить людей платить за услуги, которые им не нужны?

2 ответа2

2

Это ограничение связано с техническим ограничением в протоколе SSL/TLS.

На виртуальном хостинге виртуальный хостинг на основе имен используется для обслуживания сайтов с разными доменными именами, использующих один и тот же IP-адрес. Однако, поскольку доменное имя не отправляется в рукопожатии SSL (оно отправляется в HTTP-запросе после установления SSL-соединения), сервер не может выбрать один из нескольких сертификатов SSL на конкретном IP-адресе на основе имени домена. В результате на один IP-адрес может быть использован только один сертификат.

Несмотря на то, что указатель имени сервера (SNI) обходит это ограничение, предоставляя имя домена в рукопожатии SSL, это относительно недавнее расширение (введенное в 2006 году), которое не поддерживается повсеместно. В частности, Internet Explorer в Windows XP не поддерживает SNI. В результате это ограничение сохраняется на многих серверах, и для использования SSL-сертификата необходим выделенный IP-адрес.

0

Этот другой ответ о StackOverflow может объяснить, что происходит: от (https://stackoverflow.com/questions/15783990/what-exactly-does-every-ssl-certificate-requires-a-dedicated-ip-mean)

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .