Do I need an SSL certificate on my EC2 server even when I have a load balancer?

Starting to setup a Load Balanser in AWS, I ran into some additional questions.

Basically I have a web site/app deployed in an EC2 instance. I'd like to make it secure by using an AWS generated cert via Certificate Manager. As I already have understood EC2 cannot itself manage this and one easy way to enable it would be to deploy a Load Balancer in front of EC2 which secures the client communication with my ACM certificate.

Maybe easy, but not for me...

QUESTION 1: Since I don't want to deploy multiple EC2 instances I need to deploy a "Classic Load Balancer" instead of an "Application Load Balancer" (since the latter requires at least 2 EC2 instances). Is this correct?

QUESTION 2: I want the visitors of the web site to get the "secure" indication in their browsers. I assume this means I need to use HTTPS all the the way client <-> Load Balancer <-> EC2, and cannot terminate the SSL/HTTPS in the LB. Is this a correct assumption?

QUESTION 3: If the previous assumption is correct, should I then use another certificate for the HTTPS communication between the Load Balancer and EC2? Afaiu the one I have in ACM cannot be used. Would the correct way be to generate a new, private certificate in ACM to use for this?

QUESTION 4: If so, would a private certificate still give the end-user the benefit of a fully signed certificate, or would it be seen as a self-signed cert (which I don't want)?

QUESTION 5: Maybe totally wrong (and showing how much I really know about certifiates ;-) but since I already have another ssh-certificate (from my IAM user, which I use to ssh to the ec2 instance) on the ec2 instance, could this one be used in the Load Balancer <-> EC2 step?

Ok, that's all I think, at least for now... Спасибо!

ОБНОВЛЕНИЕ Благодаря полезным ответам я заставил это работать, и это оказалось проще, чем я думал, когда писал исходный вопрос. Я только что запустил «Балансировщик нагрузки приложений» со слушателями http и https с моим сертификатом ACM, сохранив все параметры по умолчанию. Добавление записи CNAME в моем внешнем DNS к имени DNS моего балансировщика нагрузки и SSL работает нормально.

2
задан 18 October 2018 в 11:06
2 ответа

Вы можете использовать сертификат Let's Encrypt или любой другой сертификат непосредственно на вашем экземпляре EC2. Однако вы не можете использовать сертификат ACM. Это позволит избежать необходимости в балансировщике нагрузки. У меня есть краткое руководство по этому здесь .

Чтобы ответить на ваши вопросы

  1. Я не думаю, что ALB требует нескольких экземпляров EC2, с одним должно быть все в порядке.

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

  3. Вы можете использовать сквозное шифрование, используя любой другой тип сертификата.

  4. Вам нужно будет проверить, работают ли самозаверяющие сертификаты. с ALB. Учитывая, что Let's Encrypt бесплатен и прост, я не понимаю, зачем вам это нужно.

  5. Нет, это разные типы сертификатов.

4
ответ дан 3 December 2019 в 09:03

Чтобы напрямую ответить на ваш вопрос: Нет, вам не нужен сертификат SSL на EC2 сервер, когда балансировщик нагрузки завершает работу SSL. Вы можете, и это может быть любой действительный сертификат SSL, даже самоподписанный. ALB примет это.

И нет, вам не нужны два экземпляра EC2 за ALB, один EC2 подойдет.

И нет, вы не можете использовать Сертификат SSH как сертификат HTTP SSL, у них другая структура.

Надеюсь, что это поможет :)

3
ответ дан 3 December 2019 в 09:03

Теги

Похожие вопросы