Следующие инструкции предназначены для переноса субдомена в другой дистрибутив внутри той же учетной записи.
Невозможно добавить альтернативное имя домена в дистрибутив CloudFront, еслиальтернативное доменное имя уже существует в другом дистрибутиве CloudFront, даже если вашей учетной записи AWS принадлежит другой дистрибутив.
Однако вы можете добавить альтернативное доменное имя с подстановочными знаками, например * .example.com, которое включает (перекрывающееся)с) альтернативное доменное имя без подстановочных знаков, такое как www.example.com. Перекрывающиеся доменные имена могут находиться в одном и том же дистрибутиве или в отдельных дистрибутивах, если оба дистрибутива были созданы с использованием одной учетной записи AWS. (выделение добавлено)
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-wildcard
Невозможно иметь неопределенность с подстановочными знаками для нескольких учетных записей, и то, что вы пытаетесь сделать, настроит именно такое условие.Он не поддерживается, потому что это уязвимость безопасности.
Я не понимаю, почему дистрибутив Cloudfront должен знать, что к нему CNAME, что, возможно, является одной из причин, по которым я 'я не понимаю ошибку, приведенную ниже.
HTTP и DNS взаимодействуют таким образом, что сервер назначения не знает о пути разрешения DNS, который привел браузер к адресу сервера, к которому он относится.связано.Сервер может идентифицировать только тот сайт, который запрашивает браузер, по заголовку HTTP Host
и значению поля SNI, когда используется HTTPS - промежуточное имя хоста dzczcexample.cloudfront.net
теряется в процессе.Параметр конфигурации альтернативного доменного имени (к сожалению и неточно называемый также CNAME по старым причинам) - это то, что CloudFront - крупная глобально распределенная система - использует для определения того, какой конкретный дистрибутив должен обрабатывать запрос, поэтому альтернативное доменное имя можетустановить только foo.example.com
для одного дистрибутива во всем CloudFront.
Как отмечалось выше, *.example.com
можно установить только для дистрибутива CloudFront в пределах той же учетной записи, что и foo.example.com
, поскольку разрешение в противном случае создает уязвимость для захвата домена.
Временное решениенемного деликатно, но это можно сделать.
- Настройте новый дистрибутив CloudFront, не задавая альтернативное имя домена, и дождитесь его перехода в состояние
Deployed
. - Измените DNS, чтобы указать назначенное имя хоста для нового дистрибутива.Это не будет делать то, что вы могли бы предположить: трафик будет фактически обрабатываться старым дистрибутивом из-за вышеупомянутого
Host
сопоставления заголовка / SNI ... но этот параметр необходимо изменить, прежде чем продолжить.* Удалите имя хоста из настроек альтернативного имени домена старого дистрибутива и сохраните изменения. - Добавьте имя хоста в настройки альтернативного имени домена нового дистрибутива и сохраните изменения.Вы должны получить ошибки в течение короткого периода времени, после чего изменение будет принято, и трафик будет обслуживаться новым дистрибутивом.
Вы захотите настроить два тестовых дистрибутива и фиктивный поддомен.(вероятно, в другой области) и проработайте эти шаги, чтобы ознакомиться с процессом.Получившийся сбой, когда я проходил этот процесс ранее, является кратким, поскольку вы не создаете новый дистрибутив (который занимает некоторое время), а просто меняете атрибуты одного стабильного дистрибутива, а затем другого.