Как виртуальные хосты и TLS работают вместе? - PullRequest
0 голосов
/ 16 января 2019

Насколько я понимаю, виртуальные хосты работают на HTTP-серверах, получая HTTP-запрос от клиента, проверяя заголовок Host, который содержит service1.example.com или service2.example.com и т. Д., И затем пересылают запрос на основе некоторых правил. в конфигурации HTTP-сервера.

Но, насколько я понимаю, TLS работает следующим образом:

  1. Клиент открывает соединение с сервером.
  2. Клиент и сервер имеют рукопожатие, когда клиент проверяет действительность сертификата сервера для имени, к которому клиент пытается получить доступ .
  3. Клиент передает запрос.
  4. Сервер передает ответ.

Похоже, что эти два несовместимы, сервер не знает, какой сертификат TLS представить клиенту до тех пор, пока запрос не будет отправлен, но клиент не отправит запрос, пока рукопожатие не будет завершено.

Они явно не являются несовместимыми, я запускал веб-серверы с несколькими отдельными виртуальными хостами TLS, каждый из которых имеет совершенно разные сертификаты. Где я тут ошибся?

...