HTTP-zu-HTTPS-Umleitung funktioniert nicht auf AWS ALB

Lesezeit: 3 Minuten

Benutzer-Avatar
Usama

Ich verwende ECS für die WordPress-Site und den Application Load Balancer (ALB) für den Lastenausgleich und das Offloading von SSL. ALB verwendet 2 verschiedene Listener auf Port 80 und 443. Die Umleitungsregel ist an den Port 80-Listener angehängt:

Redirect tohttps://#{host}:443/#{path}?#{query} 
Status code:HTTP_301

Der Webserver ist nginx mit php-fpm und lauscht auf Port 80. Bei nginx findet keine Umleitung statt.

Also, im Grunde möchte ich http (Benutzeranforderung) -> https (ALB-Umleitung) -> http (nginx)

Nun besteht das Problem darin, dass die ALB den http-Traffic für die Haupthomepage nicht gerne umleitet

http://beispiel.com -> http://beispiel.com (ALB keine Weiterleitung) -> http://beispiel.com (nginx)

aber es funktioniert mit derselben Domain, aber unterschiedlicher URL wie:

http://example.com/page -> https://example.com/page (ALB-Umleitung) -> http://example.com/page (nginx)

Edit: Hier ist die Verknüpfung zu den ALB-Listener-Regeln.

  • Wenn es nicht umleitet … was macht es dann? Nur auf HTTP bleiben oder etwas anderes? Gibt es eine andere Regel auf der ALB, die vor dieser (höher in der Liste der Regeln) passt?

    – Michael – sqlbot

    15. März 2019 um 2:53 Uhr

  • @Michael-sqlbot ja, es bleibt einfach auf HTTP. Nein, es gibt keine andere Regel als die auf Port 80. Auf Port 443 besteht die Standardaktion darin, den Datenverkehr an den ECS-Cluster weiterzuleiten, der einwandfrei funktioniert.

    – Usama

    15. März 2019 um 12:46 Uhr

  • Überprüfen Sie Ihren Browser-Cache? Es gibt keinen Grund, dies nur auf der Hauptseite zu tun, es sei denn, Sie haben wirklich eine Regel, die mit dem Pfad übereinstimmt / oder es ist in Ihrem Browser zwischengespeichert.

    – Michael – sqlbot

    15. März 2019 um 12:50 Uhr

  • Ich habe es in mehreren Browsern im Inkognito-Modus überprüft, auch auf Mobilgeräten ist es dasselbe. Sie können meine Konfigurationen überprüfen hier.

    – Usama

    15. März 2019 um 12:57 Uhr

  • Hallo @Usama, hast du es geschafft, dein Problem zu beheben. Ich stehe vor einem ähnlichen Problem. http Der Datenverkehr wird nicht umgeleitet https

    – Opensource-Entwickler

    26. Februar 2020 um 10:51 Uhr

Wenn die andere Antwort nicht funktioniert, überprüfen Sie, ob Ihre Sicherheitsgruppe eingehende Verbindungen auf Port 80 zulässt

  1. Gehen Sie zu Ihrem Load Balancer
  2. Klicke auf Description. Scrollen Sie nach unten zu Security Groups um Ihre Sicherheitsgruppe zu finden
  3. Klicken Sie auf Ihre Sicherheitsgruppe und überprüfen Sie, ob eingehende Verbindungen auf Port 80 zulässig sind. Wenn nicht, fügen Sie sie hinzu. Auch wenn Sie den Datenverkehr von Port 80 umleiten, werden sie es nie bis zu diesem Schritt schaffen, wenn sie hier blockiert sind.

Sicherheitsgruppenregeln

  • Ja! Du hast meinen Tag gerettet, Bruder! Vielen Dank!

    – Schienbein

    8. April 2020 um 3:28 Uhr

Ich bin mir nicht sicher, was Sie falsch machen, aber der Port 80-Listener kann die Umleitung auf https verarbeiten.

Sie können den Port 80-Listener manuell aktualisieren, oder wenn Sie Cloudformation verwenden, würde es so aussehen:

Listener80:
  Type: AWS::ElasticLoadBalancingV2::Listener
  Properties:
    DefaultActions:
      - RedirectConfig:
          Port: 443
          Protocol: HTTPS
          StatusCode: HTTP_301
        Type: redirect
    LoadBalancerArn: !Ref ALB
    Port: 80
    Protocol: HTTP

Die Listener-Konfiguration sieht folgendermaßen aus:

Redirect Listener - Konsole

  • Danke für die Wolkenbildungsvorlage, aber derzeit verwende ich sie nicht für ALB. Sie können meine ALB-Konfiguration überprüfen hieres ist dasselbe wie der Screenshot, den Sie oben geteilt haben.

    – Usama

    15. März 2019 um 12:52 Uhr

Ich hatte das gleiche Problem. Der HTTP-Listener wurde entfernt, wieder hinzugefügt und er begann ordnungsgemäß zu funktionieren.

1371780cookie-checkHTTP-zu-HTTPS-Umleitung funktioniert nicht auf AWS ALB

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy