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.

Другие вопросы по тегам