Налаштування HTTPS в Amazon EC2


101

Як ми вмикаємо HTTPS в Amazon EC2? Наш сайт працює над HTTP.


гарне запитання, але я встановив групу безпеки, і ніяких шармів не відбувається
Shark Deng

Відповіді:


76

Спочатку потрібно відкрити порт HTTPS (443). Для цього перейдіть на сторінку https://console.aws.amazon.com/ec2/ і клацніть на Security Groupsпосилання зліва, а потім створіть нову групу безпеки з доступним HTTPS. Потім просто оновіть групу безпеки запущеного екземпляра або створіть новий екземпляр за допомогою цієї групи.

Після цих кроків робота з EC2 закінчена, і все це проблема програми.


15
Я зміг додати нове правило для порту 443 до групи безпеки, що використовується екземпляром, і вона просто почала працювати, навіть не перезавантаживши її.
Дмитро Єфименко

9
you can't change a security group of a running instance, even rebooting- Думаю, це обмеження було знято, оскільки ця відповідь була розміщена.
Юрій Наконечний

11
Вам не потрібно міняти групу безпеки, ви можетеEdit inbound rules
Хой

8
@ nikhil84, додавши HTTPS до групи безпеки, ви лише відкрили порт 443 на машині, що є кроком 1. По-друге, вам потрібно налаштувати ваш сервер на цій машині, щоб слухати порт 443 (замість HTTP-порту за замовчуванням 80) і приймати HTTPS-трафік. Яким сервером ви користуєтесь?
Юрій Наконечний

4
@ nikhil84, будь ласка, дотримуйтесь наведених тут вказівок: digitalocean.com/community/tutorials/…, щоб налаштувати https на Apache HTTPD
Юрій Наконечний

40

Ця відповідь спрямована на тих, хто купує домен на іншому сайті (як GoDaddy) і хоче використовувати безкоштовний сертифікат Amazon із менеджером сертифікатів

У цій відповіді використовується Amazon Classic Load Balancer (платний), перед використанням ознайомтесь із цінами


Крок 1 - Запитуйте сертифікат у менеджера сертифікатів

Перейдіть до Менеджера сертифікатів> Запросити сертифікат> Запросити загальнодоступний сертифікат

На ім'я домену ви будете додавати myprojectdomainname.comі *.myprojectdomainname.comі далі Далі

Виберіть перевірку електронної пошти та підтвердження та запит

Відкрийте електронний лист, який ви отримали (в обліковому записі електронної пошти, в якому ви придбали домен), та обговоріть запит

Після цього перевірте, чи статус перевірки успішний myprojectdomainname.comі *.myprojectdomainname.comчи успішний, якщо успішний, можна перейти до кроку 2

Крок 2 - Створіть групу безпеки для балансування навантаження

На EC2 перейдіть до Групи безпеки> і Створіть групу безпеки та додайте вхідні адреси http і https

Це буде приблизно так: введіть тут опис зображення

Крок 3 - Створіть балансування навантаження

EC2> Балансир навантаження> Створити навантажувач> Класичний навантажувач (третій варіант)

Створіть LB всередині - vpc вашого проекту On Load Balancer Protocol додає Http та Https введіть тут опис зображення

Далі> Виберіть вихід із групи безпеки

Виберіть групу безпеки, яку ви створили на попередньому кроці

Далі> Виберіть сертифікат від ACM

Виберіть сертифікат кроку 1

Далі>

під час перевірки стану я використовував ping-шлях / (одна коса риса замість /index.html)

Крок 4 - Пов’яжіть свій екземпляр із групою безпеки балансування навантаження

EC2> Екземпляри> натисніть свій проект> Дії> Мережа> Змінити групи безпеки

Додайте групу безпеки свого балансувача навантаження

Крок 5

EC2> Load Balancer> Клацніть на створеному вами балансері навантаження> скопіюйте ім'я DNS (запис), це буде щось на зразок myproject-2021611191.us-east-1.elb.amazonaws.com

Перейдіть до маршруту 53> Зони маршрутів> клацніть на ім'я домену> Перейдіть до наборів записів (якщо у вас немає свого домену, створіть розміщену зону за допомогою Domain Name: myprojectdomainname.comта Type: Public Hosted Zone)

Перевірте, чи є у вас тип запису A (можливо, ні), створіть / відредагуйте набір записів із порожнім іменем, тип A, псевдонім Так і націліть dns, які ви скопіювали

Створіть також новий набір записів типу A , ім’я *.myprojectdomainname.com, псевдонім Так і націліть свій домен (myprojectdomainname.com). Це дозволить отримати доступ до вашого веб-сайту за адресою www.myprojectdomainname.com та subsite.myprojectdomainname.com. Примітка. Вам потрібно буде налаштувати зворотний проксі (Nginx / Apache) для цього.

На NS скопіюйте 4 значення серверів імен, які слід використовувати на наступному кроці, це буде приблизно так:

ns-362.awsdns-45.com ns-1558.awsdns-02.co.uk ns-737.awsdns-28.net ns-1522.awsdns-62.org

Перейдіть до EC2> Екземпляри> І скопіюйте також загальнодоступний IPv4 IP

Крок 6

На сайті реєстрації доменів, який ви купили домен (у моєму випадку GoDaddy)

Змініть маршрутизацію http : <Your IPv4 Public IP Number>та виберіть Вперед із маскуванням

Змініть сервери імен (NS) на 4 NS, які ви скопіювали, це може зайняти 48 годин, щоб набути чинності


Чи потрібно використовувати балансир навантаження, якщо я хочу https?
Кертіс,

Я зробив усе це, але отримую ERR_CONNECTION_TIMED_OUT, коли потрапляю у свій домен у браузері
Кертіс,

1
Мені потрібно було зробити балансування навантаження з новою цільовою групою на порту 80, а потім відредагувати слухачі, щоб використовувати порт 80. Працює зараз. Дякую.
Кертіс

1
@Curtis Load balancer - не єдиний варіант використання https, ви також можете налаштувати "дозволяє шифрувати" всередині вашого EC2
DigaoParceiro

@DigaoParceiro що ви зробили з кроком 5. скопійованого імені DNS?
Прашант,

9

Екземпляри Amazon EC2 - це лише віртуальні машини, тому ви б налаштували SSL так само, як і на будь-якому сервері.

Ви не згадуєте, на якій платформі ви перебуваєте, тому важко надати більше інформації.


Привіт, я використовую екземпляр T2.Micro Amazon Linux EC2. Я використовую node.js для підтримки сервера. Я слухаю порт 443 у своєму сценарії сервера, і моя група безпеки налаштована на порт 443. Що ще мені потрібно зробити, щоб увімкнути HTTPS? Мені потрібне посвідчення, так? Виникають проблеми з пошуком гідної інформації щодо цього, яка НЕ ​​базується на Elastic Beanstalk.
Стівен Тетро

2
@SMT - загляньте на letsencrypt.org, щоб отримати безкоштовні сертифікати та автоматично поновити їх . Існує багато інформації (через google) про те, як її налаштувати за допомогою node. Вам не потрібно нічого іншого конкретного AWS / EC2 робити.
Джефф Епплфорд,

2
Дякую за відповідь! Я фактично змусив це працювати днями і впорядкував деякі кроки. Якщо хтось читає це з майбутнього: github.com/MSCHF/aws-ec2-node-npm-setup
Стівен Тетро

5

Старе питання, але варто згадати ще один варіант у відповідях. Якщо система DNS вашого домену була визначена в Amazon Route 53, ви можете скористатися послугою Amazon CloudFront перед своїм EC2 і прикріпити до неї безкоштовний сертифікат Amazon SSL. Таким чином, ви отримаєте перевагу як CDN для швидшої доставки вмісту, так і захист вашого домену за допомогою протоколу HTTPS.


Чи є посилання чи блог, де згадуються кроки для досягнення цього?
Саурабх Ядав

у цьому відео atiqur rahman отримує ssl-сертифікат за допомогою диспетчера сертифікатів Amazon, а потім він налаштовує фронт хмари за допомогою екземпляра EC2. Після автоматичного ввімкнення налаштування http / 2.
Сачітра Ділшан,

4

Також повинна бути відповідь для людей, які хочуть безпроблемних https на ec2 в основному для демонстрації та тестування, один із способів досягти цього дуже швидко:

Моя відповідь тут описує, як можна досягти https для тестування за лічені хвилини за допомогою EC2 без клопоту зі створенням сертифікатів


2

Використовуйте еластичне балансування навантаження , воно підтримує припинення SSL на балансаторі навантаження, включаючи вивантаження розшифровки SSL з екземплярів додатків та забезпечення централізованого управління сертифікатами SSL.


15
Ви не використовуєте ELB просто для надання SSL, це насправді досить оманлива відповідь. Ваш сервер повинен надавати SSL незалежно, тому додавання балансу навантаження - це лише додаткові витрати, якщо вам це не потрібно. Це також припинення SSL у програмному забезпеченні, тому SSL між балансиром навантаження та сервером (серверами) є додатковим кроком, що впливає на продуктивність.
Томас Танк Двигун

1
Я згоден з вашим коментарем. Це додасть додаткових витрат і вплине на продуктивність. Ми не знаємо їх точних вимог щодо завантаження на їх сервери, тому це все одно може бути шляхом. Але я не розумію вашого зауваження "Ваш сервер повинен надавати SSL незалежно", навіщо це потрібно? Балансир навантаження також включає розвантаження SSL. Дякую.
Peter Hulsen,

2
Так, правда. Ви можете використовувати це для простого надання SSL. Я просто думаю, що екземпляри все ще мають загальнодоступні значення DNS, де користувачі могли отримати до них прямий доступ з якоїсь причини. Якщо це сталося, цілком можливо, ви захочете змусити це використовувати SSL.
Thomas the Tank Engine

Я знаю, що цей коментар запізнюється, але, наскільки я розумію, якщо ви хочете використовувати зареєстроване доменне ім'я, то вам доведеться використовувати ELB, оскільки IP EC2 вважається "непостійним", і тому не може використовувати ваш сертифікат SSL. З іншого боку, якщо ви просто використовуєте наданий Amazon DNS, то, можливо, йому не потрібен ELB, я не перевіряв.
гексикл


0

Одним з найкращих ресурсів, який я знайшов, було використання шифрування, вам не потрібні ELB і хмарний фронт, щоб ваш екземпляр EC2 мав HTTPS, просто дотримуйтесь наступних простих інструкцій: давайте зашифруємо Вхід на свій сервер і виконуємо кроки за посиланням.

Також важливо, як зазначали інші, відкрити порт 443 шляхом редагування груп безпеки

Ви можете переглянути свій сертифікат або будь-який інший веб-сайт, змінивши назву сайту за цим посиланням

Будь ласка, не забувайте, що він діє лише 90 днів

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