Поиск по сайту:

Как настроить бесплатные SSL-сертификаты с помощью балансировщиков нагрузки AWS


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

Что такое SSL-сертификат?

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

Многие центры сертификации берут за сертификаты сотни долларов, но вы можете получить их бесплатно в нескольких местах. Amazon Web Services предлагает их бесплатно, если вы используете их балансировщики нагрузки, но сами балансировщики нагрузки стоят более 16 долларов в месяц. Если это невозможно, вы все равно можете получить бесплатные SSL-сертификаты от LetsEncrypt, которые вам придется установить вручную на свой веб-сервер.

Ничто не мешает вам использовать LetsEncrypt с инстансами AWS EC2 или даже с балансировщиками нагрузки, но сертификаты AWS более настраиваемые и работают с другими сервисами AWS. Например, если вы используете AWS Cloudfront, вы можете использовать тот же сертификат SSL, который вы создали для балансировщика нагрузки, не беспокоясь об их индивидуальном продлении.

Создайте новый сертификат SSL в диспетчере сертификатов AWS

Для целей этого руководства мы предполагаем, что вы уже в какой-то степени используете EC2 и у вас запущен веб-сервер. Неважно, какой тип веб-сервера вы используете, поскольку сертификат будет установлен только в балансировщике нагрузки, но вам все равно понадобится что-то за ним для обслуживания контента.

Вам также потребуется доступ к настройкам вашего доменного имени, как для добавления новых записей для подтверждения вашего домена, так и для направления вашего домена на новый балансировщик нагрузки после того, как это будет сделано.

В консоли управления EC2 нажмите «Сервисы» на верхней панели и найдите «сертификат». Откройте Диспетчер сертификатов.

Нажмите «Начать» в разделе «Предоставление сертификатов».

Этот сертификат будет использоваться для защиты соединений через Интернет, поэтому он должен быть общедоступным. Выберите «общедоступный» и нажмите «Запросить».

Теперь вы можете добавить свое доменное имя в сертификат. Сертификаты AWS поддерживают подстановочные знаки, поэтому может быть полезно включить также \*.yourdomain.com\ , чтобы защитить любые поддомены, которые у вас могут быть. Добавьте любой домен, который вам нужен, затем нажмите «Далее».

Теперь вам нужно подтвердить свой домен. AWS предлагает два типа проверки: DNS и электронная почта.

DNS потребует от вас добавить запись CNAME к вашему доменному имени. Если вы используете AWS Route 53 в качестве поставщика DNS, это несложно, но если вы используете что-то другое, процесс проверки может занять несколько часов.

Электронная почта занимает всего несколько минут. AWS отправит электронное письмо зарегистрированному контактному лицу WHOIS, а также \admin@yourdomain.com\ и несколько других распространенных электронных адресов веб-администратора. Если у вас нет частной электронной почты для вашего домена, вы обычно можете настроить переадресацию электронной почты на общедоступную учетную запись Gmail в настройках вашего регистратора, что также будет работать.

Если вы собираетесь использовать проверку DNS, скопируйте «Имя» и «Значение» из раскрывающегося списка доменов. Если вы проверяете несколько доменов, проверьте, отличаются ли значения, так как вам, возможно, придется проверять их по отдельности.

В настройках вашего провайдера DNS добавьте новую запись CNAME и вставьте имя и значение в форму (этот интерфейс зависит от вашего провайдера).

В то время как для распространения DNS требуется всего несколько минут, AWS может потребоваться несколько часов для проверки домена, так что, возможно, перекусите. Если вы используете подтверждение по электронной почте, это займет всего несколько минут после перехода по ссылке в письме.

Как только это будет сделано, вы должны увидеть, как оранжевый «Ожидает проверки» переключается на зеленый «Выпущено». Вам не нужно ничего скачивать; сертификат можно автоматически использовать в других сервисах AWS.

Настройте балансировщик нагрузки с вашим новым сертификатом

После создания сертификата его можно установить в балансировщик нагрузки. Балансировщики нагрузки AWS работают как прокси с несколькими конечными точками, способными перенаправлять трафик с одного общедоступного IP-адреса на множество частных IP-адресов и распределять нагрузку между ними.

Мы настроим его для прослушивания общедоступного HTTPS-порта 443 и перенаправления трафика на порт 443 на вашем веб-сервере. Порт веб-сервера может быть другим, например порт 8080, поскольку соединение между балансировщиком нагрузки и веб-сервером является внутренним, но мы предполагаем, что на вашем веб-сервере уже открыт порт 443. Если нет, вам нужно будет открыть его из правил безопасности вашего экземпляра EC2.

В консоли управления EC2 прокрутите боковую панель вниз, чтобы найти «Балансировщики нагрузки», и нажмите «Создать балансировщик нагрузки».

Существует несколько типов балансировщика нагрузки, которые работают на разных уровнях, но для простоты мы выберем «Балансировщик нагрузки приложений», который уравновешивает базовые HTTP и HTTPS.

В параметрах укажите внутреннее имя и добавьте прослушиватель HTTPS. По умолчанию должен использоваться порт 443, стандарт для HTTPS.

Нажмите «Далее», чтобы перейти к «Настройка параметров безопасности», и вам будет предложено выбрать сертификат (или загрузить свой собственный, если вы используете другую службу SSL). Выберите «Выбрать сертификат из ACM» и выберите свой сертификат из раскрывающегося списка. Если вы его не видите, попробуйте нажать зеленый значок обновления, и если его все еще нет, вам следует проверить свои настройки в диспетчере сертификатов.

Нажмите «Далее», чтобы перейти к «Настроить группы безопасности» и создать новую группу безопасности. По умолчанию открыты порты 80 и 443, что вам, вероятно, и нужно.

Нажмите «Далее», чтобы перейти к «Настроить маршрутизацию», и введите внутреннее имя целевой группы. Убедитесь, что протокол установлен на HTTPS.

Нажмите «Далее», чтобы перейти к «Зарегистрировать цели», и введите частный IP-адрес ваших инстансов EC2, который вы можете найти в консоли управления EC2. Если вы ввели их правильно, интерфейс должен показать идентификатор экземпляра и зону, в которой он находится.

Нажмите «Далее», чтобы перейти к обзору, и, если все выглядит хорошо, нажмите «Создать», чтобы настроить балансировщик нагрузки.

Вернитесь в Консоль управления EC2 и перейдите на вкладку Балансировщики нагрузки. Это займет несколько минут, но после настройки балансировщика вы сможете скопировать DNS-адрес. Фактический IP-адрес вашего балансировщика нагрузки изменится, но адрес DNS всегда будет указывать на него.

Вы захотите заменить существующий IP-адрес вашего доменного имени на этот адрес, чтобы посетители были направлены на ваш балансировщик нагрузки, который защитит соединение и направит их к вашему веб-серверу EC2 (или серверам).

Этот же сертификат будет работать со многими другими сервисами AWS; например, если вы зарегистрировали *.yourdomain.com с сертификатом, вы сможете предоставлять контент S3 через Cloudfront по адресу media.yourdomain.com с использованием того же сертификата. Вы не можете загрузить их вручную, поэтому они всегда будут привязаны к сервисам AWS и будут управляться Amazon.