HTTPS для статического веб-сайта Amazon S3

Я хочу разместить статический веб-сайт с HTTPS, используя Amazon S3 и CloudFront. Вот что я сделал до сих пор:

  • Настройте ведро S3 для статического хостинга веб-сайтов и разместите в нем мои файлы веб-сайта.
  • Создал дистрибутив CloudFront и указал его на ведро S3
  • Добавлена ​​запись CNAME в моих серверах доменных имен для субдомена www, указывающего на ведро CloudFront.

До сих пор так хорошо - я могу получить доступ к своему сайту с помощью адреса www.example.com. Тем не менее, я хочу, чтобы сайт был доступен только через HTTPS, для которого я купил SSL-сертификат от GoDaddy.

Теперь вопрос:

  • Есть ли способ установить этот сторонний сертификат SSL на моем веб-сайте, размещенном на S3?
  • Есть ли способ автоматического перенаправления HTTP на https с этой настройкой?

Ответ 1

Да, на сегодняшний день вы можете сделать это бесплатно.

Теперь вы можете использовать HTTPS с CNAME на CloudFront, поскольку теперь он поддерживает пользовательские SSL-сертификаты с использованием указателя имени сервера (SNI): http://aws.typepad.com/aws/2014/03/server-name-indication-sni-and-http-redirection-for-amazon-cloudfront.html

Мне удалось создать бесплатный сертификат Class 1 StartSSL для моего распределенного статического сайта CloudFront на S3 без особых проблем (см. Ошибка CloudFront при обслуживании через HTTPS с использованием SNI).

Ответ 2

В 2016-01-21 AWS запустил AWS Certificate Manager, который является бесплатной службой, которая позволяет вам выдать сертификат SSL, который будет использоваться с Elastic Load Balancer и Cloud Front (вместе с S3 тоже).

Вы можете узнать больше: https://aws.amazon.com/certificate-manager/

И вы можете проверить, как развернуть свой веб-сайт S3 + Cloudfront с бесплатным SSL от AWS по адресу: https://aws.amazon.com/blogs/aws/new-aws-certificate-manager-deploy-ssltls-based-apps-on-aws/

Ответ 3

На сегодняшний день Cloudfront предлагает настраиваемый SSL: http://aws.amazon.com/cloudfront/pricing/

Имейте в виду, что они платят 600 долларов США в месяц. Подробнее о ссылке выше.

Ответ 4

Как было сказано ранее, это невозможно, но вы можете настроить Apache или nginx + SSL на экземпляр EC2, CNAME - ваш желаемый домен, и обратный прокси-сервер к фактическому URL-адресу S3 или Cloudfront.

Вы не получите преимуществ Cloudfront с этим, поэтому вам следует просто обслуживать ваш index.html или эквивалент и использовать "реальные" (неконкретизированные) URL-адреса Cloudfront для более тяжелых активов.

Ответ 5

В дополнение к ответу @wikichen.

От: https://aws.amazon.com/cloudfront/custom-ssl-domains/

По умолчанию вы можете доставлять контент для зрителей через HTTPS, используя ваше доменное имя домена CloudFront в своих URL-адресах, например https://dxxxxx.cloudfront.net/image.jpg.

Если вы хотите доставлять свой контент через HTTPS с помощью собственного имени домена и собственного SSL-сертификата, вы можете использовать одну из наших функций поддержки пользовательских сертификатов SSL.