Проблема с запуском приложения Express через HTTPS на aws

#node.js #amazon-web-services #express #amazon-ec2 #single-page-application

#node.js #amazon-веб-сервисы #экспресс #amazon-ec2 #одностраничное приложение

Вопрос:

У меня есть серверная часть ExpressJS, и я хочу работать через https на aws (поэтому я не получаю ошибку «содержимое смешанного типа» при попытке подключиться к моему интерфейсу, который работает через https), он отлично работает с использованием http, но при использовании https он не работает. Я задавал этот вопрос раньше и получил ответы типа «использовать nginx», «использовать балансировщик нагрузки», к сожалению, я мало что знаю об этом, поскольку у меня не очень большой опыт работы со всеми вариантами и опциями aws, есть ли какие-либо учебные пособия, которым я могу следовать шаг за шагом? или любой простой способ обслуживать мой сервер через https без сложностей?

Комментарии:

1. Итак, ваш серверный сервер работает на одном экземпляре EC2? Это экземпляр пользовательской настройки или, например, экземпляр из Elastic Beanstaslk?

2. Я загрузил свой zip-файл в elastic beanstalk, и он автоматически создал микроэкзамен t2, работает только для http, но не для https

Ответ №1:

есть простой способ обслуживать мой сервер через https без сложностей?

Самый простой способ (не путать с самым дешевым способом) — изменить среду EB на среду с балансировкой нагрузки. Вы можете сделать это в настройках конфигурации EB console.

Это изменение создаст балансировщик нагрузки приложения для вашего приложения и разместит его перед вашим экземпляром. После запуска ALB вы можете следовать этому руководству AWS:

В приведенном выше Terminate HTTPS on the load balancer разделе будет уместен только раздел.

В зависимости от характера вашего приложения, является ли оно полностью динамическим или более статичным, вы также можете рассмотреть возможность использования эластичного Beanstalk с Amazon CloudFront вместо использования ALB. CloudFront также можно легко настроить на использование HTTPS между клиентами и CloudFront, но проблема в том, что трафик между CloudFront и вашим экземпляром EB будет проходить через Интернет в незашифрованном виде (HTTP). Очевидно, что вы могли бы сделать его HTTPS, но это требует дальнейших изменений и конфигураций, которые не попадают в категорию «простых способов».

Комментарии:

1. если я использую первый вариант, который является балансировщиком нагрузки, есть идеи о том, сколько мне придется заплатить дополнительно (в настоящее время используется экземпляр t2 micro)

2. Если вы используете t2.micro, я предполагаю, что вы находитесь на бесплатном уровне. ALB покрывается бесплатным уровнем . Поэтому вам нужно будет проверить, не превышаете ли вы лимиты бесплатного уровня.

3. большое спасибо, чувак, я попробую и дам вам знать, как все прошло.

4. @OmarZahir Вы все еще можете установить SSL-сертификат на classic load balancer. Особой разницы быть не должно.

5. Я попробовал первый вариант (ALB), проблема в том, что тип балансировщика нагрузки — «Классический», а не «Приложение», не могу изменить его даже после его изменения в экземпляре, который не изменяется в приложении elastic beanstalk. Я даже пытался использовать классический балансировщик нагрузки, но он запросил сертификат, который я должен получить от менеджера сертификатов, будет ли ALB запрашивать сертификат тоже?, разве я не могу сделать все это с помощью моего самозаверяющего сертификата?