HTTPS для статичного веб-сайту Amazon S3 [закрито]


90

Я хочу розмістити статичний веб-сайт, що працює лише на HTTPS, за допомогою Amazon S3 та CloudFront. Ось що я зробив до цього часу:

  1. Налаштуйте сегмент S3 для статичного хостингу веб-сайтів і розмістіть у ньому файли мого веб-сайту
  2. Створив дистрибутив CloudFront і спрямував його на відро S3
  3. Додано запис CNAME wwwна серверах імен мого домену для субдомену, що вказує на сегмент CloudFront.

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

Тепер питання:

  1. Чи є спосіб встановити цей сторонній сертифікат SSL на моєму веб-сайті, розміщеному в S3?
  2. Чи існує спосіб автоматичного перенаправлення http на https за допомогою цієї установки?

1
Чи можу я це зробити безкоштовно?
Піюш С. Ванаре

Ви можете отримати сертифікат SSL від Amazon безкоштовно, і він автоматично поновлюється. aws.amazon.com/certificate-manager Прокрутіть вниз до значка долара :)
Коста,

1
Я голосую за те, щоб закрити це питання як нетематичне, оскільки воно не стосується програмування
Зак Сосьє

1
Чому б не перенести питання на ServerFault?
nu everest

@nueverest, оскільки він занадто старий для міграції.
gre_gor

Відповіді:


63

Так, на сьогоднішній день це можна зробити безкоштовно.

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

Мені вдалося створити безкоштовний сертифікат StartSSL класу 1 для мого розподіленого статичного сайту CloudFront на S3 без особливих проблем (див .: Помилка CloudFront при обслуговуванні через HTTPS за допомогою SNI ).


7
Детальний керівництво: bryce.fisher-fleig.org/blog / ...
elado

3
Відгуки: Посібник Брайс Фішера був дуже хорошим.
tresf

6
Тут є тонкощі. Ви можете отримати HTTPS для сегмента S3, якщо він не налаштований для хостингу веб-сайтів . Див. Примітку, у якій сказано: "Кінцеві точки веб-сайту не підтримують https".
skeller88

6
Добре, щоб пройти повз "тонкощі" та описати простою англійською мовою, ось мій досвід. Відро S3 зі статичним вмістом веб-сторінки (html) можна перетворити на веб-сайт за допомогою декількох клацань. Цей веб-сайт може використовувати лише http. Якщо ви хочете https, вам потрібно скористатися послугою Cloudfront AWS і налаштувати її для SNI, щоб отримувати https безкоштовно. (Деякі дуже старі або дивні браузери не підтримують SNI.) HTML та інші ресурси можна зберігати на S3 за низькою ціною. Крім того, якщо ви отримуєте доменне ім’я від AWS, ви повинні скористатися їхньою службою пружного балансу навантаження. Комісія становить кілька центів за концерт.
Mike_Laird

5
Я вважаю дивовижним, що цю відповідь отримали правильну відповідь, коли вона просто не вирішує питання: як заявив @ skeller88, s3 https не працює для хостингу веб-сайтів.
настоятель

36

21 січня 2016 року 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 /


1
Я просто встановив це для свого сайту сьогодні вранці. Це статичний сайт, розміщений у s3. Це було надзвичайно просто. Я просто звернувся до менеджера acm, попросив сертифікат, поклав мої налаштування електронної пошти на кілька годин (в підсумку зробив мою інформацію WHOIS загальнодоступною, поки я чекав електронного листа з підтвердженням), а потім налаштував route53, щоб вказувати на кінцеву точку Cloudfront . Дуже щасливий, що я знайшов цей коментар.
параноїк

1
@paranoid За допомогою цього чи можу я розмістити свій веб-сайт s3 як https-лише?
Піюш С. Ванаре

1
@ PiyushS.Wanare так, ти можеш!
barbolo

Помістіть посилання HTTPS в запис CNAME у Route53.
Коста,

@paranoid не впевнений, що ви маєте на увазі під "кінцевою точкою у хмарі".
настоятель

17

На сьогодні Cloudfront пропонує спеціальний SSL: http://aws.amazon.com/cloudfront/pricing/

Майте на увазі, вони стягують 600 доларів на місяць. Детальніше за посиланням вище.


7
600 / місяць ......
Пейс'єр

11
Ви платите лише 600 доларів, якщо хочете виділити виділену IP-адресу. Якщо ви із задоволенням користуєтеся SNI (який не підтримується старими браузерами), додаткові збори не стягуються
Martin OConnor

2
Якщо ви готові підтримувати лише сучасні браузери (через SNI), це тепер набагато дешевше: aws.amazon.com/about-aws/whats-new/2014/03/05/…
Ендрю

Зараз це БЕЗКОШТОВНО! aws.amazon.com/certificate-manager Прокрутіть вниз до знака долара. Плюс я думаю, що вони поновлюються автоматично. А налаштування настільки ж просто, як ввести потрібні домени в сертифікаті та натиснути посилання для перевірки в електронному листі, що йде далі.
Коста

3

Для мене мені довелося завантажити простий веб-сайт React на S3. Як описує barbolo, вам потрібен сертифікат для доступу до сайту через SSL. Якщо статичний сайт, який ви хочете розгорнути, досить простий, ви можете:

  1. Завантажити на S3.
  2. Ви НЕ виберіть «Static Хостинг веб - сайтів»
  3. Перетворити всі відносні посилання (на css, js тощо) в абсолютні посилання.

наприклад, з /css/media.css вам слід перетворити його на https://s3-region-amazonaws.com/bucket-name/css/media.css (для мене мені довелося змінити лише посилання в index.html)

  1. Зробити загальним лише вміст сегмента.

Це воно. Ви можете отримати доступ до файлу індексу через https.

Простий сайт - це сайт з основним файлом index.html, який вказує на деякі сторінки css та js.


Приголомшливо Дякую
користувач1874634

Якщо ваш додаток націлений на виробництво, це погана ідея.
Себастьян

sébastien, поділіться з нами докладніше, чому це погана ідея. Ми надаємо загальнодоступний доступ для читання об’єктам, а не сегменту.
alexopoulos7

Це хороший і найпростіший спосіб, але пам’ятайте, що для кожного окремого файлу у вашій заявці запит надсилатиметься через Інтернет, що зменшить продуктивність вашої програми. Використання CloudFront - найкраща ідея в цих сценаріях.
Нітеш Б.

@ NiteshB.CloudFront болить дупу, коли потрібно часто оновлювати об'єкти S3
Дастін Нд,

0

На додаток до відповіді @ wikichen.

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

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

Якщо ви хочете доставити свій вміст через HTTPS, використовуючи своє власне доменне ім’я та власний сертифікат SSL, ви можете скористатися однією з наших функцій підтримки власних сертифікатів SSL.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.