http в URL https в среде единого экземпляра AWS Beanstalk - PullRequest
0 голосов
/ 04 февраля 2019

Я развернул приложение NodeJS/Express на AWS Beanstalk.Текущий конфиг:

Environment type: single instance
EC2 instance type: t2.micro
Node.js version: 10.15.0
No load balancer
Proxy server : Nginx

При развертывании он дает мне URL http://<app-name>.<server-location>.elasticbeanstalk.com/

Я протестировал (используя Postman) мой API аутентификации с URL - http://<app-name>.<server-location>.elasticbeanstalk.com/users/authenticate и ондает мне код состояния 200 OK и работает нормально.

Когда я использую HTTPS вместо HTTP, он не работает, как ожидалось .В почтальоне я получаю ошибку ниже:

There was an error connecting to https://<app-name>.<server-location>.elasticbeanstalk.com/users/authenticate

Мой веб-интерфейс развернут на netlify, и когда я запускаю тот же запрос из моего веб-приложения, он выдает мне сообщение об ошибке ниже:

The page at 'https://<app-name>.netlify.com/login' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://<app-name>.<server-location>.elasticbeanstalk.com/users/authenticate'. This request has been blocked; the content must be served over HTTPS.

IПонимаю, что, поскольку мой запрос приходит с https, мне нужно настроить свой бэкэнд для прослушивания https.Я не уверен, как мне это сделать в AWS Beanstalk, где у меня нет балансировщика нагрузки, и мой тип env - это единственный экземпляр.

Я новичок в AWS.Ценю твою помощь.Спасибо!

1 Ответ

0 голосов
/ 04 февраля 2019

Вам потребуется добавить файл конфигурации .ebextension в:

  • Разрешить 443 трафика в вашей группе безопасности
  • Установить пакет ssl
  • скопироватьсертификаты из пакета приложения в каталог ssl.(сертификаты могут быть созданы в диспетчере сертификатов) или вставьте их в файл конфигурации
  • edit nginx config

Вот пример https://edwardsamuel.wordpress.com/2015/07/17/enable-https-and-http-redirect-on-aws-elastic-beanstalk/

...