Защитите URL-адрес, который имеет запись cname
У меня есть сайт с субдоменами для каждого пользователя и подстановочный SSL-сертификат
https://user1.mysite.com
https://user2.mysite.com
Вопрос в том, может ли кто-нибудь установить запись cname, такую как user1.theirsite.com → user1.mysite.com, и использовать ли она https?
Будет ли он работать, если они устанавливают SSL-сертификат на своем сервере для защиты соединения?
Спасибо
Ответы
Ответ 1
Лучшим способом для этого является то, что если вы согласитесь, чтобы ваш сертификат SSL включал их "псевдоним" в качестве расширения Subject Alternate Name
в вашем сертификате X.509.
Это подход, используемый некоторыми CDN, когда они размещают сайты https
для клиентов - они помещают все известные имена сайтов, размещенные на одном сервере в одном большом сертификате SSL, а затем клиенты используют CNAME для указания своих домен на правом сервере CDN.
Ответ 2
Имя хоста и проверка сертификата (и, фактически, проверка того, что SSL используется вообще), являются исключительно ответственностью клиента.
Проверка имени хоста будет выполняться клиентом, как указано в RFC 2818, на основе имени хоста, которое они запрашивают в своем URL-адресе. Является ли разрешение DNS имени хоста основано на записи CNAME или что-то еще не имеет значения.
Если пользователь вводит https://user1.theirsite.com/
в своем браузере, сертификат на целевом сайте должен быть действительным для user1.theirsite.com
.
Если у них есть собственный сервер для user1.theirsite.com
, отличный от user1.mysite.com
, запись DNS CNAME не имеет смысла. Предполагая, что два хоста эффективно отличаются друг от друга, они могут иметь свой собственный действительный сертификат для user1.theirsite.com
и перенаправить на https://user1.theirsite.com/
. Перенаправление также будет отображаться в адресной строке.
Если вы действительно хотите иметь CNAME от user1.theirsite.com
до user1.mysite.com
, они могут предоставить вам свой сертификат и закрытый ключ, чтобы вы также размещали его на своем сайте, используя указатель имени сервера (при условии, что тот же порт, и, конечно же, тот же IP-адрес, поскольку вы используете CNAME). Это будет работать для клиентов, которые поддерживают SNI. Тем не менее, существует определенный риск для них предоставить вам свои личные ключи (что обычно не рекомендуется).
Ответ 3
Установлено и работает следующее:
Запись DNS для a.corp.com
→ CNAME b.corp2.com
→ A 1.2.3.4
Haproxy at 1.2.3.4
будет обслуживать сертификат для a.corp.com
, и сайт загружается с сервера брандмауэра.
Итак, на вашем сервере вам понадобится user1.theirsite.com
cert, и он будет работать.