Перенаправить http на https AWS Application Load Balancer - PullRequest
0 голосов
/ 06 мая 2020

Привет всем, поэтому я настроил свой ELB для использования сертификата SSL, и он отлично работает, однако у меня все еще есть проблема, когда, если пользователь заходит на мой веб-сайт через порт 80 по протоколу HTTP, веб-сайт не перенаправляет их на защищенный протокол HTTPS. подключение. Вот скриншот моей конфигурации ELB, как видно на вкладке конфигурации Elasti c Beanstalk. Любая помощь приветствуется, спасибо. elb config

Ответы [ 3 ]

0 голосов
/ 07 мая 2020

Хотя кажется, что у вас все заработало, перенаправив в вашем приложении, это возможно выполнить это перенаправление полностью в вашем ALB. Документация: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html

Эта функция была выпущена в июле 2018 года. https://aws.amazon.com/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load-balancer/

Elasti c Beanstalk, возможно, не запустил свои собственная поддержка для настройки этого. Возможно, вы сможете настроить его через ebextensions, но на данный момент лучше просто сделать это в своем приложении.

0 голосов
/ 10 мая 2020

Вы можете настроить прослушиватель Application Load Balancer следующим образом:

HTTP 80: default action 
IF 
Requests otherwise not routed
THEN 
Redirect to HTTPS://#{host}:443/#{path}?#{query}
Status code:HTTP_301
0 голосов
/ 07 мая 2020

Это был совсем не эльб, мне просто пришлось добавить этот код:

if (process.env.NODE_ENV === "production" || process.env.NODE_ENV === "awsDevelopmentServer") {
  app.use(function(req, res, next) {
    // Insecure request?
    if (req.get("x-forwarded-proto") == "http") {
      // Redirect to https://
      return res.redirect("https://" + req.get("host") + req.url);
    }```
...