Назад | Перейти на главную страницу

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

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

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

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

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

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

Чтобы расширить ответ Warner: страница CAcert Оперативная группа Vhost сравнивает несколько методов использования нескольких доменов на одном сервере. Я лично использую Индикация имени сервера.

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

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

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

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

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