s3 статический сайт + облачный фронт + SSL не работает для не www
У меня есть статический HTML-сайт, размещенный на S3 Bucket. Я сгенерировал бесплатный ssl-сертификат с давайте шифровать, который я импортировал в ACM.
certbot --manual --server https://acme-v01.api.letsencrypt.org/directory -d example.com -d www.example.com
Я настроил cloudfront для использования этого сертификата.
На моем провайдере DNS (namecheap) я установил CNAME, который указывает www на доменное имя облачного фронта, а также установил перенаправление с mydomain.com на www.mydomain.com
Теперь, если я пойду к
https://www.example.com/, это работает
https://example.com/, зависает до истечения времени ожидания
Может кто-нибудь сказать мне, что мне не хватает?
1 ответ
На моем провайдере DNS (namecheap) я... переадресовал с mydomain.com на www.mydomain.com
В этом проблема. У вашего "провайдера DNS" есть служба перенаправления, которая не поддерживает HTTPS. Нет никакого способа, которым они могут это сделать - перенаправление может произойти только после установления HTTPS-соединения, а HTTPS-соединение требует действительного сертификата.
Перенаправления на самом деле никогда не выполняются в DNS, хотя интерфейс вашего провайдера может создать у вас такое впечатление. Перенаправления всегда выполняются с веб-сервера. У вашего провайдера есть веб-сервер, который он предоставляет и указывает DNS там, когда вы настраиваете одно имя хоста для перенаправления на другое.
Короче говоря, на самом деле нет способа сделать это на вершине домена, не используя Route 53 в качестве вашего авторитетного DNS-хоста. Вам не нужно передавать регистрацию вашего доменного имени регистратору Route 53, но вам нужно будет использовать Route 53 для вашего DNS, и вам понадобится второй сегмент и второй дистрибутив CloudFront - см. Раздел Поддержка перенаправления URL-адресов HTTPS. с одним дистрибутивом CloudFront.