Cloudfront перенаправляет www на голый домен с помощью ssl
Простите меня, если это было задано раньше, есть ряд ресурсов, которые касаются этого, но ничего не подходит для моего конкретного (https) прецедента.
Я пытаюсь перенаправить https://www.example.com в https://example.com. Аналогично, это должно работать для http://www.example.com в https://example.com.
Я установил облачный дистрибутив с происхождением ведро 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 http://example.com не работает.
В маршруте 53 у меня есть корневой домен с псевдонимом первого распределения облачной сети, а www - псевдоним со вторым.
Ответы
Ответ 1
Я нашел решение благодаря этому ответу: Amazon S3 Redirect и Cloudfront
Короче:
Cloudfront не соблюдает настройку правил перенаправления в S3, если источником является только идентификатор ведра. Вместо этого мне пришлось установить источник в предоставленное имя хоста s3 static host.
Ответ 2
Чтобы разместить веб-сайт на AWS, чтобы:
https://www.example.com, http://www.example.com и http://example.com все перенаправляются на https://example.com
вам нужно:
-
Создайте два ведра S3 с именем: example.com и www.example.com.
-
Включите статический веб-хостинг на этих двух ведрах.
-
Настройте перенаправление в ведре www.example.com на: https://example.com.
В свойствах ковша выберите Static Website Hosting = > Перенаправить все запросы на другое имя хоста. Не забудьте указать URL-адрес с помощью https://prefix!
-
Для этих ковшей создайте два CloudFront Distributions. Каждое из этих распределений указывает на соответствующее ведро:
-
Для доменного имени Origin укажите ведомые URL-адреса, указанные в разделе "Хостинг веб-сайтов". URL-адреса должны иметь форму (или аналогичную): example.com.s3-website-us-west-1.amazonaws.com
-
В обоих дистрибутивах перенаправление HTTP на HTTPS.
-
НЕ ИСПОЛЬЗУЙТЕ URL, ПРЕДЛАГАЕМЫЙ АМАЗОНСКИМ АВТОКОМПЛЕТОМ!
-
НЕ УСТАНАВЛИВАЙТЕ УСТРОЙСТВО ЦИФРОВОГО ЦЕНА СОБСТВЕННОСТИ!
-
Настройте DNS, установив записи A на www.example.com и example.com, чтобы указать на соответствующие дистрибутивы CloudFront.
Почему это работает? CloudFront обеспечивает переадресацию с HTTP на HTTPS в обоих случаях (с и без www). Ведро для www.example.com обеспечивает перенаправление на example.com. Если у вас не было этого дистрибутива, ведро не сможет перенаправить запрос на https://www.example.com. Сам S3 не поддерживает HTTPS для статического хостинга веб-сайтов.