Я внедряю мультитенантное приложение, где мое приложение размещает и обслуживает техническую документацию для продукта арендатора.
Теперь, тот подход , который я рассматривал был - я у себя документацию на docs.<tenant>.mycompany.com
и попросить мой арендатор настроить запись CNAME DNS в точку docs.tenantcompany.com
к docs.<tenant>.mycompany.com
.
Я хочу, чтобы на сайте была включена поддержка SSL с сертификатом моего арендатора. Я хотел понять, есть ли у моей компании-арендатора сертификат SSL с подстановочными знаками, будет ли он работать с этой настройкой, или нужно будет покупать новый сертификат SSL docs.tenantcompany.com
?
*.mycompany.com
*.example.com
не будет совпадатьdocs.tenantname.example.com
! Подстановочный знак подходит только для одного «поддомена»; это будет соответствоватьdocs-tenantname.example.com
, например. Хороший пример тому - Amazon S3:*.s3.amazonaws.com
сертификат завершается ошибкой при доступе к корзине с точкой, напримерwww.example.com
(которая заканчивается именем хостаwww.example.com.s3.amazonaws.com
); такие имена групп требуются для веб-хостинга S3.Ответы:
Имя сертификата должно соответствовать тому, что пользователь ввел в браузер, а не «окончательной» записи DNS. Если пользователь входит,
docs.tenantcompany.com
то ваш SSL-сертификат должен покрыть это.Если
docs.tenantcompany.com
это CNAMEfoo.example.com
, сертификат не нужно покрыватьfoo.example.com
, простоdocs.tenantcompany.com
.источник
Джейсон ответ правильный. Но просто для пояснения терминов, «перенаправление DNS» немного ошибочно. DNS имеет записи CNAME (псевдонимы), которые являются именами, указывающими на другое имя. Но это не редирект. Перевод с имени на имя на IP все происходит в фоновом режиме, и ваш браузер заботится только о первоначальном имени.
Единственное, что делает перенаправления - это веб-серверы, на которых сервер явно указывает вашему браузеру куда-нибудь еще. Если ваш веб - сервер был на самом деле делает редирект на другое имя, вы бы на самом деле нужны для обоих сертификаты имен , потому что ваш браузер будет в конечном итоге подключение к обеим из них по отдельности.
источник
Server A
доменexample.com
. Я сделал для него сайт и поддерживал сайт вServer B
. Мой клиент настроил свой DNS,A Record
который указываетdog.example.com
на IP-адрес моего сервераServer B
. Теперь мой клиент получает SSL дляdog.example.com
. У меня вопрос, должен ли мой клиент выдать мне сертификат SSL, чтобы он был внутриServer B
? Или он просто должен это вставитьServer A
? Или что еще мы должны сделать? Мы оба смущены этим, спасибо!dog.example.com
указывает на IP-адрес вашего сервера, то да. Ваш сервер должен содержать сертификат и закрытый ключ для этого имени. Сервер А в вашем примере не имеет значения.dog.example.com
и отправил мне сертификат и закрытый ключ. Я помещаю их внутрьServer B
и настраиваю Nginx для их использования. И все теперь отлично работает. Спасибо вам!Краткий ответ: Нет. Если ваша компания-арендатор имеет подстановочный знак в имени
*.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-адрес. Если
CNAME
в DNS существует 20 псевдонимов между исходной записью и записьюA
илиAAAA
, распознаватель DNS будет следовать за ними, пока не будет получен IP-адрес.TLS
Когда браузер выполняет квитирование TLS , он должен убедиться , что сервер он обменивается данными с уполномочивается предоставлять безопасное обслуживание сайта на полное доменное имя с просьбой:
docs.tenantcompany.com
.Помните: браузер не заботится о
docs.<tenant>.mycompany.com
том, что DNS-распознаватель забрал все записи об косвенности черезCNAME
запись.Наш метод авторизации сервера для обслуживания защищенных сессий
docs.tenantcompany.com
- это использование SSL-сертификата, который подписан органом, которому в хранилище корневых сертификатов браузера было установлено предварительное доверие. Это не всегда самая сильная форма аутентификации сервера к клиенту - многие могут пойти не так в модели централизованного ЦС - но это лучшее, что у нас есть на данный момент.Здесь есть еще два предостережения:
Обмен ключами
Многие коммерческие поставщики SSL-сертификатов подписывают только один запрос на подпись, который эффективно связывает подстановочный сертификат с одним закрытым ключом. Компании-арендатору может быть нелегко делиться этим вне своей организации, поскольку любой, кто владеет закрытым ключом, может явно поставить под угрозу связь с другими защищенными системами компании-арендатора.
Некоторые поставщики подписывают несколько запросов на подпись сертификатов под одним и тем же сертификатом, что позволяет устанавливать один групповой сертификат на нескольких серверах и системах без совместного использования закрытого ключа между ними.
Masquerading
Если компания-арендатор предоставит вам копию своего сертификата с подстановочными знаками (либо поделившись закрытым ключом, либо подписав свой собственный CSR), вы можете маскироваться под него
<anydomain>.tenantcompany.com
, нарушая важную защиту, которая обеспечивает целостность серверов, идентифицированных вtenantcompany.com
пространстве имен DNS. Это может быть плохим положением как для вас, так и для компании-арендатора, с точки зрения юридической ответственности.источник