Как перенаправить HTTP на HTTPS, используя S3, Cloudfront и Route 53, используя голые домены?
У меня есть домен (example.com) с поддержкой SSL. У меня возникла проблема при попытке перенаправить запрос из www.example.com
→ https://example.com
.
Ошибка при попытке доступа к www.example.com:
Запрос не может быть удовлетворен.
Плохой запрос.
Эти URL-адреса работают (перенаправляются на https://example.com
)
-
example.com
-
http://example.com
-
https://example.com
http://www.example.com
показывает, что веб-сайт не является безопасным, то есть он не использует сертификат.
S3
Я создал 2 S3 buckets example.com и www.example.com(соответственно A и B). Ведро Статический хостинг веб-сайтов позволяет размещать веб-сайт, указывая на example.com. Bucket B Статический хостинг веб-сайтов перенаправляет все запросы на example.com.
CloudFront
У меня есть дистрибутив с двумя альтернативными именами доменов (CNAME), example.com и www.example.com. У меня также есть сертификат SSL на этом dist.
Маршрут 53
У меня есть зона с двумя алиасами типа A, example.com и www.example.com, которые указывают на распространение Cloudfront (XX.cloudfront.net)
Ответы
Ответ 1
Вам нужно, чтобы ваш контент распространялся Cloudfront. Таким образом, содержимое из вашего сегмента S3 будет проходить через Cloudfront, прежде чем его обслужат. Вы можете найти информацию о том, как это сделать, здесь: Использование CloudFront с Amazon S3
Затем, во второй части, чтобы все ваши данные обслуживались с помощью https, выполните следующие действия: Перейдите в CloudFront> Ваш дистрибутив> вкладка поведения> выберите первый элемент списка и нажмите "Изменить". Тогда вы сможете увидеть опцию для перенаправления http на https.
![enter image description here]()
Ответ 2
Я удивлен, что вам повезло с конечными точками SSL, так как я понимаю, что правильная настройка - отключить статический хостинг веб-сайтов в корзинах s3 и убедиться, что весь трафик к ним проходит через Cloudfront. Cloudfront будет обрабатывать сам SSL, включая перенаправления с HTTP на HTTPS, при условии, что вы настроили свой источник Cloudfront, чтобы разрешить доступ HTTPS только через параметр Origin Protocol Policy
.
Для настройки конфигурации Cloudfront-to-s3: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html
Чтобы ограничить доступ к s3 только Cloudfront: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html