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

Какая технология стоит за SSL на основе имени хоста (несколько хостов ssl на одном IP)?

Известный поставщик PaaS Heroku предлагает несколько решений проблемы SSL. Один из них - продукт под названием SSL на основе имени хоста

Это не SNI. Они утверждают, что он работает во всех браузерах в любой конфигурации, но имеет другие недостатки, в основном (цитируя документы):

Используя это настраиваемое решение для сборки, Heorku может обслуживать несколько сайтов SSL на одном IP-адресе, и, как они утверждают, он будет работать с чем угодно.

Может ли кто-нибудь объяснить техническую сторону этого решения и технологию, лежащую в основе этого продукта?

Это не совсем то, что вы думаете. Heroku не обслуживает несколько сертификатов SSL на одном IP-адресе. Например, если вы выполните nslookup для разных развертываний SSL с именем хоста, вы обнаружите, что каждое из них указывает на разные Amazon ELB. В этом и заключается секретный соус.

Когда клиент запрашивает SSL на основе имени хоста, для него предоставляется ELB, и клиента просят указать CNAME на имя хоста этого ELB. Эти ELB подключаются обратно к сетке маршрутизации Heroku при необходимости.

Надеюсь, это проясняет некоторые вещи. Не стесняйтесь задавать больше вопросов.

Я не знаю, поэтому должен порассуждать. Это может работать в результате взаимодействия между собственными DNS-серверами Heroku и HTTP-серверами. Поток может выглядеть так:

  1. Клиент запрашивает https://www.yourdomain.com
  2. DNS-преобразователь клиента преобразует www.yourdomain.com в качестве CNAME в RR на серверах имен heroku (например, app1234.apps.heroku.com)
  3. DNS-распознаватель клиента запрашивает запись записи записи для app1234.apps.heroku.com с сервера имен для apps.heroku.com
  4. Сервер имен для apps.heroku.com выдает адрес и уведомляет соответствующий веб-сервер клиента по IP-адресу 1.2.3.4, запрашивая хост www.yourdomain.com.
  5. Клиент инициирует квитирование SSL-соединения с app1234.apps.heroku.com
  6. Сервер HTTPS, зная, что клиент в 1.2.3.4 собирается запросить www.yourdomain.com в качестве сайта, выбирает правильный сертификат для www.yourdomain.com и приступает к подтверждению SSL.

В некоторых сценариях поток может прерваться, особенно при большом количестве запросов для разных сайтов, исходящих с одного IP-адреса (как в случае с клиентами, находящимися за прокси-сервером или шлюзом NAT), но это можно «выровнять» путем распределения запросов. для разных хостов назначения с одного исходного IP-адреса среди множества серверов HTTPS, поэтому у одного сервера HTTPS не будет двусмысленности при принятии решения, какой сертификат выбрать для данного клиента.