2015-02-23 3 views
32

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

Я пытаюсь перенаправить 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 - псевдоним.

+0

См. Мой ответ здесь, который должен быть очень полезным: http://stackoverflow.com/questions/36265027/how-to-forward-non-www-to-www-with-aws-amazon-cloud-front -behind-https-cloud-fro/41899321 # 41899321 – Marcel

+0

Вместо того, чтобы закрыть этот вопрос, можем ли мы перенести его на Server Fault? Я хотел бы добавить ответ. – jtheletter

ответ

32

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

Короче:

CloudFront не уважает настройки правил переадресации в S3, если начало координат является только ведро ID. Вместо этого мне пришлось установить источник на предоставленное имя хоста s3 static host.

+6

Большое спасибо за сообщение вашего ответа. Я использовал его для получения переадресации HTTPS из голых доменов на www, например. [https://example.com] (https://example.com) -> [https://www.example.com] (https://www.example.com). Это решение является недопустимым, поскольку AWS UI автокомпонирует стандартное имя узла S3 (bucketname.s3.amazonaws.com), которое, по вашему мнению, будет правильным способом, но для этого варианта использования статическая конечная точка хостинга веб-сайта (например, bucketname.s3-website-us-east-1.amazonaws.com) - это то, что вам нужно. – kellen

+3

Важно также, чтобы ваши дистрибутивы CloudFront ** не ** устанавливали как ** исходный объект ** по умолчанию **, потому что он нарушит перенаправление в ведре S3. –

+0

Ваша ссылка указывает на вопрос. Какой ответ на этот вопрос вы намеревались связать? – jtheletter

23

Чтобы разместить веб-сайт на 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. В свойствах ковша выберите Статический хостинг сайта =>Перенаправить все запросы на другое имя хоста. Не забудьте указать URL с https: // префикс!

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

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

    • На оба распределения установлен HTTP к HTTPS перенаправления.

    • НЕ ИСПОЛЬЗУЙТЕ URL-адрес, ПРЕДЛАГАЕМЫЙ АВИАКОМПЛЕКТОМ АМАЗОНА!

    • НЕ УСТАНАВЛИВАЕТ По умолчанию Основной объект НЕДВИЖИМОСТЬ!

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

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

+4

Не устанавливайте перенаправление HTTP на HTTPS на www-> naked CF distribution, чтобы избежать ненужной перенаправления. Вы хотите, чтобы http://www.example.com сначала перешел на https://example.com, а не https://www.example.com. – maletor

+0

Не устанавливайте запись A на 53 для www. Используйте CNAME. Используйте ALIAS для записи A и AAAA в корневом домене. – maletor

+0

@maletor Либо один работает. Записи ALIAS + A предназначены не только для корневых доменов, они используются для указания записи DNS в дистрибутив CloudFront. – ffxsam

Смежные вопросы