Я пользуюсь сервисом (banana.com
), что позволяет мне использовать мой домен (orange.com
) чтобы залогиниться.
Они упоминают, что нужно добавить запись CNAME следующим образом:
an.orange.com. 3600 IN CNAME service.banana.com.
Я сделал это, но когда я обращаюсь к URL-адресу, я получаю (в Chrome) ошибку Ваше соединение не является частным "" :
Мой сервер работает на Apache.
Зачем серверу доказывать, что это an.orange.com
? Почему он вообще попадает на мой сервер? Разве адрес не должен разрешаться service.banana.com
?
В CNAME
запись заявляет, что an.orange.com
это псевдоним канонического имени service.banana.com
.
Это означает, что когда клиент ищет какой-либо тип записи (например, A
) в an.orange.com
ответ будет иметь A
запись для service.banana.com
вместо.
В обычном приложении, таком как веб-браузер в вашем примере, приложение не знает и не заботится о том, что имело место косвенное обращение в виде CNAME
record как часть процесса разрешения имен (который в значительной степени скрыт от внутреннего устройства), он просто использует полученный IP-адрес.
Имея это в виду, когда пользователь переходит на https://an.orange.com/
в их веб-браузере браузер настроен на подключение к хост-части URL-адреса (an.orange.com
), он разрешает это имя, получает IP-адрес, подключается, затем полностью ожидает действительный сертификат для хоста от текущего URL-адреса в случае HTTPS, а затем отправляет заголовок Host с частью текущего URL-адреса (an.orange.com
) как часть их запроса.
Это сильно отличается от того, как веб-браузер реагирует на перенаправление HTTP, где ему предлагается перейти к другому URL-адресу, перезапустив весь процесс навигации со всеми новыми ожиданиями (например, теперь пытается подключиться к https://service.banana.com/
).
Для HTTPS это означает, что если вы хотите разрешить пользователям переходить на https://an.orange.com/
у вас должен быть действующий сертификат на это имя.