Я купил домен example.com и размещаю его на AWS Elastic Beanstalk. Для поддержки HTTPS я выпустил групповой сертификат из диспетчера сертификатов AWS для * .example.com и назначил его как экземпляру EB, так и ELB. Поскольку я купил домен в Godaddy, я также добавил DNS-запись подстановочного знака CNAME (*) в Godaddy DNS и дал имя ELB AWS в качестве целевого значения.
Это отлично работает для поддоменов, и я могу нажать https anystring.example.com и перейти на страницу индекса моей среды EB. Но проблема в том, что я не могу использовать https example.com (без поддомена) для перехода в среду. Не находит запись домена. И я понимаю почему, но не уверен, что делать, чтобы решить эту проблему.
Я попытался добавить новую запись CNAME:
Название: @
Значение: ELB AWS Value
Но Godaddy выдал мне ошибку, что запись уже есть. Я искал и нашел на SO, что, пока существует какая-то запись @, я не могу добавить другую.
Я искал больше и сделал еще несколько вещей, чтобы добиться прогресса: 1. Я добавил запись CNAME www и назначил имя ELB AWS в target, так что теперь я могу нажать https www.example.com и перейти на env. индексная страница. 2. Я добавил переадресацию домена (переадресация @ на https www.example.com), поэтому размещение только example.com в URL работает и переадресация на https www.example.com
Но я все еще не могу перейти на страницу индекса с помощью https example.com
Любой совет?
Вы не можете использовать CNAME в корневом домене (example.com), только для поддомена. Это связано со стандартами / дизайном DNS. Прочтите этот вопрос / ответ.
Решение состоит в том, чтобы переместить DNS на AWS Route 53. Стоимость относительно невелика, и это гораздо лучший способ ссылаться на ELB из DNS. Route53 предоставляет вам записи псевдонимов, которые позволяют вам указывать корневой домен (то есть без www) на ELB.
Настройте маршрут 53 для своего домена, затем укажите GoDaddy на серверах имен, которые дает Route53. Есть инструкции здесь.
Пара ресурсов для вас. - Использование ELB с EB - http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-elb.html
"example.com" и ".example.com "- это совершенно разные имена с точки зрения проверки SSL из-за того, как работает проверка синтаксиса домена, и важности в нем точек. Если вы приобретете сертификат с подстановочным знаком (.example.com) он действителен только для запросов, содержащих один (и только один) субдомен до "example.com"; он не будет действителен для домена вершины. То же самое относится и к вложенным поддоменам, например, a.b.example.com не подходит для * .example.com.
Для достижения своей цели вы должны купить сертификат, содержащий как домен вершины, так и подстановочное имя в поле CommonName.