CloudFront установлены редирект www на домен с SSL [закрыт]


Простите меня, если об этом спрашивали раньше, есть ряд ресурсов, которые касаются этого, но, похоже, ничто не подходит для моего конкретного (https) варианта использования.

Я пытаюсь перенаправить https://www.example.com к https://example.com . аналогично, это должно работать для http://www.example.com к https://example.com .

Я настроил дистрибутив cloudfront с источником корзины s3, перенаправил http на https, добавил cname example.com и добавил мой доменный сертификат (который работает как для поддомена www, так и для голого домена).

Я также настроил отдельный дистрибутив с cname для www.example.com, добавил сертификат и установил источник в отдельную корзину s3, которая в (статическом хостинге сайта) перенаправляет все запросы на https://example.com .

Перенаправление работает, как и ожидалось для http://example.com к https://example.com , однако http(s)://www.example.com чтобы https://example.com нет.

В route 53 у меня есть корневой домен с псевдонимами для первого дистрибутива cloudfront и www с псевдонимами для второго.

2 50

2 ответа:

Разместить сайт на AWS так, чтобы:

Https://www.example.com, http://www.example.com и еще http://example.com все перенаправить на https://example.com

Вам нужно:

  1. Создайте два ведра S3 с именем: example.com и www.example.com.

  2. Включитестатический хостинг веб-сайтов на этих двух корзинах.

  3. Настроить перенаправление в корзине www.example.com к: https://example.com . В свойствах корзины выберите статический хостинг сайта => перенаправление всех запросов на другое имя хоста . В полеTarget bucket или domain введите example.com , в поле Protocol введите https

  4. Для этих корзин создайте два распределения CloudFront. Каждое из этих распределений указывает на соответствующее ведро:

  5. Для исходного доменного имени предоставить URL-адреса корзины приведены в разделестатический хостинг веб-сайтов . URL-адреса должны иметь вид (или аналогичный): example.com.s3-website-us-west-1.amazonaws.com

    • На обоих дистрибутивах HTTP к HTTPS редирект.

    • НЕ ИСПОЛЬЗУЙТЕ URL, ПРЕДЛОЖЕННЫЙ AMAZON AUTOCOMPLETE!

    • Не устанавливайте свойствокорневого объекта по умолчанию !

  6. Настройка DNS путем установки записей для www.example.com и еще example.com чтобы указать на соответствующие дистрибутивы CloudFront.

Почему это работает? CloudFront обеспечивает перенаправление с HTTP на HTTPS в обоих случаях (с www и без него). Ведро для www.example.com обеспечивает перенаправление на example.com если бы у вас не было этого дистрибутива, ведро не смогло бы перенаправить запрос на https://www.example.com. S3 сам по себе не поддерживает HTTPS для статического хостинга веб-сайтов.

Я нашел решение благодаря этому ответу: Amazon S3 Redirect и Cloudfront

Короче говоря:

Cloudfront не соблюдает правила перенаправления, установленные в S3, если источником является только идентификатор корзины. Вместо этого я должен был установить источник на предоставленное S3 статическое имя хоста веб-сайта.