Я пытаюсь подключить субдомен к экземпляру AWS Elasticbeanstalk, на котором запущено приложение Django, с помощью сертификата из AWS Certificate Manager. Домен зарегистрирован по адресу 123-Reg.
AWS Certificate Manager показывает статус успешной проверки сертификата.
Я добавил его в балансировщики нагрузки в экземпляре Elasticbeanstalk (порт 443, Protocal HTTPS, Instance Post 443, InstanceProtocol HTTPS, сертификат SSL согласно диспетчеру сертификатов).
Я добавил субдомен и .acm-validations.aws
в ALLOWED_HOSTS в приложении django (я не знаю, требуется ли это).
Таким образом, сайт направляется на VPS основного домена (а не на субдомен). Это просто вызывает ошибку HTTPS, потому что на этом VPS нет сертификата для поддомена.
Я попытался добавить DNS-запись CNAME для поддомена, чтобы она указывала на URL-адрес экземпляра elasticbeanstalk, но это просто создает пустой экран.
Как заставить субдомен работать с экземпляром elasticbeanstalk?
Вам необходимо настроить общедоступную зону с тем же доменным именем в Route53, а затем указать DNS для зоны на вашего поставщика услуг хостинга DNS вместо AWS. Также убедитесь, что ваша общедоступная зона также имеет запись поддомена. В этой записи вам нужно иметь запись A, которая указывает на вашу конечную точку, которая будет балансировщиком нагрузки.
Что касается сертификата, убедитесь, что ваш сертификат охватывает как * .mydomain.com, так и mydomain.com. Если вы используете диспетчер сертификатов AWS, вы можете добавить его, удалив текущий сертификат и повторно добавив его с обоими именами. В качестве альтернативы добавьте новый сертификат только с subdomain.mydomain.com. Я бы пошел по маршруту * .mydomain.com, таким образом любой поддомен, который вы добавите в будущем в свою публично размещенную зону, будет иметь действующий сертификат.