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


17

Чи можливо веб-серверу вибрати сертифікат SSL для використання на основі заголовка хоста вхідного з'єднання, або це інформація, яка доступна лише після встановлення з'єднання SSL?

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

Відповіді:


23

Історично ваше перше твердження є точним. Зараз є кілька варіантів:

  • Сертифікат підстановки, якщо субдомени в межах одного домену.
  • Сертифікат SAN / UCC, щоб вказати альтернативні імена для сертифіката, таким чином, зможе обслуговувати кілька сертифікатів.
  • SNI був введений для встановлення з'єднання SSL після заголовка хоста. Однак ця підтримка обмежена, оскільки вона є новішою.

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


4
Я пішов шукати і нічого не міг знайти; це, мабуть, одна з тих речей, які легко знайти, лише якщо ви знаєте відповідь, щоб ви могли включити її до пошукових термінів. Спасибі.
DrStalker

3
Якщо на ServerFault є відповіді, було б непогано посилатися на них.
organicveggie


3
SNI не встановлює з'єднання SSL після заголовка хоста, але включає ім'я хоста в рукостискання SSL. Це не важливо, якщо ви не розробник SSL.
Барт ван Хекелом

Пошук сервера за замовчуванням дає це як відповідь. Це означає, що канонічно будь-які інші питання є дублікатами цього. Ця посилання ви включили не має ніяких результатів.
Ян Бойд

5

Щоб розширити відповідь Уорнера: на сторінці CAcert Vhost Task Force порівнює кілька методів використання декількох доменів на одному сервері. Я особисто використовую вказівку імені сервера .


Як ви справляєтеся з користувачами Windows XP, користувачами Android, користувачами Blackberry тощо?
thomasrutter

3

Коротка відповідь: ні

HTTP інкапсульований всередині SSL , тому будь-яка інформація про запит недоступна, поки з'єднання не буде встановлено. Отже, поки клієнту не видали сертифікат . Ні в якому разі не можна використовувати заголовки та будь-яку іншу зашифровану інформацію, оскільки вони все ще недоступні.

EDIT: це правда, якщо ви хочете, щоб у наш час перехресний веб-переглядач і повністю портативний. За словами інших, існують нові методи, що дозволяють зробити це найближчим часом.


1

чи це інформація, яка доступна лише після встановлення з'єднання SSL?

Правильно. З'єднання SSL встановлюється до відправлення будь-якої частини HTTP-запиту (включений заголовок хоста).


2
Це вже не зовсім точно.
Warner
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.