Назад |
Перейти на главную страницу
Использование SSL в мультидоменной настройке с автоматическим масштабированием Elastic Beanstalk
Мы создаем систему управления контентом для нашей компании. Важно, чтобы эта CMS поддерживала динамические доменные имена на динамическом количестве серверов. После многих часов исследований мы решили, что Amazon Elastic Beanstalk - это то, что нужно. Одна вещь, которая нам также нужна, - это возможность динамически включать SSL для доменов, связанных с нашей системой.
Итак, в нашей системе мы можем создать «сайт», который будет связан с доменом. Когда сайт будет создан, мы также должны иметь возможность выбрать, будет ли домен размещаться через SSL / TLS. Мы планируем использовать систему white label и ожидаем, что с ней будет связано большое количество доменов.
Я изучал различные возможности установки SSL на серверах (или балансировщике нагрузки) и имел возможность изменять защищенные домены на лету. Вот где я нахожусь:
- Использование диспетчера сертификатов Amazon: это был бы самый желанный способ сделать это. Он интегрирован с AWS и очень прост в использовании. Однако у него есть несколько изнурительных ограничений: 1. Вы должны подтверждать каждый домен по электронной почте каждый раз, когда запрашиваете новый сертификат. Ничего страшного, кроме 2. Он не может применять сертификаты к экземплярам EC2, только балансировщикам нагрузки и балансировщикам нагрузки может быть назначен только один сертификат. Это означает, что вам необходимо повторно подтверждать каждый домен, когда вы хотите, чтобы другой домен был защищен. Не хорошо.
- Использование Let's Encrypt на балансировщике нагрузки: это будет следующий лучший способ (насколько я понимаю) для защиты наших сайтов. Каждый раз, когда требуется защитить новый сайт, мы запрашиваем новый сертификат для всех доменов, которым требуется SSL. После создания сертификата мы отправляем его в IAM и говорим EBS связать балансировщик нагрузки с новым сертификатом. Единственная проблема, которую я вижу, это то, что LetsEncrypt ограничивает свои сертификаты 100 доменами, как и платный, но относительно недорогой поставщик SSL, SSLMate. Может сработать, но не масштабируется. Есть ли автоматический поставщик SSL, у которого нет ограничений на количество доменов в сертификате?
- Использование сквозного SSL: Amazon Elastic Beanstalk позволяет настроить его таким образом, чтобы балансировщик нагрузки передавал зашифрованный трафик прямо в инстансы EC2. Затем вы можете разрешить экземплярам EC2 обрабатывать сертификаты. Затем я могу использовать LetsEncrypt и назначить отдельный сертификат для каждого домена. При рассмотрении возможности автомасштабирования я столкнулся с проблемой: нам нужно будет дублировать сертификаты в разных экземплярах. Моим решением было бы хранить сертификаты в защищенной корзине S3, а затем запустить cron на всех экземплярах EC2, чтобы вытащить новые / обновленные сертификаты.
Есть ли опасения по поводу последней идеи? Есть ли лучшее решение для того, что я пытаюсь сделать? Я что-то упускаю? Беспокойство? А может быть супер простое решение моей проблемы?
Обратите внимание, что я использую докер, поэтому я могу настроить на сервере все, что мне нужно.
Elastic Load Balancer теперь может иметь до 26 сертификатов (как показано Вот).
Если вам нужно более 26 сертификатов на ELB, и вы хотите использовать сервисы AWS, вы можете использовать распределение CloudFront для каждого сертификата / домена.
Также вы можете использовать проверку DNS на основе CNAME в CertificateManager, чтобы автоматически обновлять сертификаты без проверки электронной почты.