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

Нужен ли мне отдельный сертификат SSL для перенаправления DNS?

Я внедряю мультитенантное приложение, в котором мое приложение размещает и обслуживает техническую документацию для продукта клиента.

Итак, подход, который я рассматривал, был таков: я размещаю документацию по адресу docs.<tenant>.mycompany.com и попросить моего клиента настроить DNS-запись CNAME для указания docs.tenantcompany.com к docs.<tenant>.mycompany.com.

Я хочу, чтобы на сайте был включен SSL с сертификатом моего клиента. Я хотел понять, есть ли у моей компании-арендатора сертификат SSL с подстановочными знаками, будет ли он работать с этой настройкой или нужно будет приобретать новый сертификат SSL для docs.tenantcompany.com?

Имя сертификата должно совпадать с тем, что пользователь ввел в браузере, а не с «последней» DNS-записью. Если пользователь входит docs.tenantcompany.com тогда ваш сертификат SSL должен покрыть это.

Если docs.tenantcompany.com CNAME для foo.example.com, сертификат делает не нужно прикрыть foo.example.com, просто docs.tenantcompany.com.

Ответ Джейсона правильный. Но чтобы немного уточнить термины, «перенаправление DNS» - это немного неправильное название. DNS имеет записи CNAME (также известные как псевдонимы), которые представляют собой имя, указывающее на другое имя. Но это не перенаправление. Преобразование имени в имя в IP происходит в фоновом режиме, и ваш браузер заботится только о начальном имени.

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

Я хотел понять, есть ли у моей компании-арендатора сертификат SSL с подстановочными знаками, будет ли он работать с этой настройкой или новый сертификат SSL должен быть приобретен для docs.tenantcompany.com?

Короткий ответ: Нет. Если в названии вашей компании-арендатора есть подстановочный знак *.tenantcompany.com, этого достаточно для установки на вашем сервере, чтобы перекрыть доступ через это имя. Хочешь ты этого или нет - другой рассказ.

Сертификат на имя docs.<tenant>.mycompany.com (например, прямой сертификат или подстановочный знак *.<tenant>.mycompany.com) бесполезен, если доступ всегда осуществляется через docs.tenantcompany.com название.


Более длинный ответ

Предположим, вы просматриваете https://docs.tenantcompany.com в разумном браузере. Браузер запускает TLS по протоколу HTTP. Его особенно интересуют две вещи; который:

  • Подсистема DNS браузера и операционной системы возвращает IP-адрес подходящего хоста, на котором запущен веб-сервер на подходящем порте где-то еще в локальной сети или в Интернете. Для HTTPS (защищенного) трафика порт по умолчанию 443 если иное не переопределено в URL-адресе.

  • Когда Рукопожатие TLS происходит между браузером и удаленным сервером, сервер представляет доверенный сертификат, который позволяет ему предоставлять службу TLS по запрошенному адресу (docs.tenantcompany.com).

DNS

Браузер видит DNS как черный ящик. Он обращается к подходящей библиотеке DNS, чтобы запросить отображение дружественного полного доменного имени (FQDN) в подходящий IP-адрес (v4 или v6). Его не волнует, как он получит этот IP-адрес. Если есть 20 CNAME псевдонимы в DNS между исходной записью и A или AAAA запись, преобразователь DNS будет следовать за ними, пока не будет получен IP-адрес.

TLS

Когда браузер выполняет Рукопожатие TLS, ему необходимо убедиться, что сервер, с которым он обменивается данными, авторизован для предоставления услуги безопасного веб-сайта по запрошенному FQDN: docs.tenantcompany.com.

Помните: браузер не заботится о docs.<tenant>.mycompany.com - преобразователь DNS абстрагировал все сведения о косвенном обращении через CNAME запись.

Наш метод авторизации сервера для обслуживания безопасных сеансов на docs.tenantcompany.com осуществляется посредством сертификата SSL, который подписывается органом, для которого в корневом хранилище сертификатов браузера установлено предварительное доверие. Это не всегда самая надежная форма аутентификации между сервером и клиентом - в централизованной модели ЦС многое может пойти не так, - но это лучшее, что у нас есть на данный момент.

Здесь есть еще два предостережения:

Обмен ключами

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

Некоторые поставщики подписывают несколько запросов на подпись сертификатов одним и тем же сертификатом, что позволяет устанавливать один подстановочный сертификат на нескольких серверах и системах без совместного использования секретного ключа между ними.

Маскарадинг

Если компания-арендатор предоставляет вам копию своего сертификата с подстановочными знаками (либо путем предоставления закрытого ключа, либо путем подписания собственного CSR), вы можете замаскироваться под <anydomain>.tenantcompany.com, разрушая важную защиту, которая обеспечивает целостность серверов, указанных в tenantcompany.com Пространство имен DNS. Это может быть плохой позицией как для вас, так и для компании-арендатора с точки зрения закона / ответственности.