Выбор SSL-сертификата на основе host-header: возможно ли это?


17

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

То есть, может ли мой веб-сервер отображаться на порту 443 и использовать сертификат foo.com, если запрошен https://foo.com , и сертификат bar.com, если запрошен https://bar.com, или я пытаюсь это сделать что-то невозможное, потому что сервер должен установить соединение SSL, прежде чем он знает, чего хочет клиент?

Ответы:


23

Исторически ваше первое утверждение верно. Теперь есть несколько вариантов:

  • Подстановочный сертификат, если субдомены находятся в одном домене.
  • Сертификат SAN / UCC для указания альтернативных имен для сертификата, что позволяет обслуживать несколько сертификатов.
  • SNI был введен для установления SSL-соединения после заголовка Host. Это имеет ограниченную поддержку, однако, поскольку оно более новое.

На ServerFault мне много раз отвечали и я, и другие. Я бы посоветовал поискать дополнительную информацию, если у вас нет конкретного вопроса.


4
Я пошел искать и ничего не мог найти; Вероятно, это одна из тех вещей, которые легко найти, если вы знаете ответ, и можете включить его в условия поиска. Благодарю.
DrStalker

3
Если на ServerFault есть ответы, было бы неплохо добавить ссылки на них.
Organicveggie


3
SNI не устанавливает соединение SSL после заголовка узла, но включает имя узла в рукопожатие SSL. Не то, чтобы это имело значение, если вы не разработчик SSL.
Барт ван Хейкелом

Поиск Serverfault дает это в качестве ответа. Это означает, что канонически любые другие вопросы являются дубликатами этого. Эта ссылка, которую вы включили, не имеет результатов.
Ян Бойд


3

Краткий ответ: нет

HTTP инкапсулирован в SSL , поэтому любая информация о запросе будет недоступна, пока не будет установлено соединение. Следовательно, пока сертификат не был предоставлен клиенту. Нет способа использовать заголовки или любую другую зашифрованную информацию, так как они по-прежнему недоступны.

РЕДАКТИРОВАТЬ: это правда, если вы хотите в настоящее время быть кросс-браузер и полностью переносимым. По словам других, есть несколько новых методов, которые делают это возможным в ближайшем будущем.


1

или эта информация доступна только после установления SSL-соединения?

Верный. Соединение SSL устанавливается перед отправкой любой части HTTP-запроса (включая заголовок узла).


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