View a markdown version of this page

HTTP 502-Statuscode (Bad Gateway) - Amazon CloudFront

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

HTTP 502-Statuscode (Bad Gateway)

CloudFront gibt einen HTTP 502-Statuscode (Bad Gateway) zurück, wenn das angeforderte Objekt CloudFront nicht bereitgestellt werden konnte, weil es keine Verbindung zum Ursprungsserver herstellen konnte.

Wenn Sie Lambda@Edge verwenden, ist das Problem möglicherweise ein Lambda-Validierungsfehler. Wenn Sie einen HTTP 502-Fehler mit dem NonS3OriginDnsError Fehlercode erhalten, liegt wahrscheinlich ein DNS-Konfigurationsproblem vor, das die Verbindung zum Ursprung CloudFront verhindert.

SSL/TLS Fehler bei der Aushandlung zwischen CloudFront und einem benutzerdefinierten Ursprungsserver

Wenn Sie einen benutzerdefinierten Ursprung verwenden, für den HTTPS zwischen CloudFront und Ihrem Absender erforderlich ist, können nicht übereinstimmende Domainnamen zu Fehlern führen. Das SSL/TLS Zertifikat für Ihren Ursprung muss einen Domainnamen enthalten, der entweder mit der Ursprungsdomain, die Sie für die CloudFront Verteilung angegeben haben, oder mit dem Host Header der Quellanfrage übereinstimmt.

Wenn die Domainnamen nicht übereinstimmen, schlägt der SSL/TLS Handshake fehl und CloudFront gibt den HTTP-Statuscode 502 (Bad Gateway) zurück und setzt den X-Cache Header aufError from cloudfront.

Sie können bestimmen, ob die Domainnamen im Zertifikat der Ursprungsdomain in der Distribution oder dem Host-Header entsprechen, indem Sie eine Online-SSL-Prüfung vornehmen oder OpenSSL verwenden. Wenn die Domain-Namen nicht übereinstimmen, haben Sie zwei Optionen:

  • Besorgen Sie sich ein neues SSL/TLS Zertifikat, das die entsprechenden Domainnamen enthält.

    Wenn Sie AWS Certificate Manager (ACM) verwenden, finden Sie unter Beantragen eines öffentlichen Zertifikats im AWS Certificate Manager Benutzerhandbuch Informationen zum Anfordern eines neuen Zertifikats.

  • Ändern Sie die Distributionskonfiguration, sodass nicht CloudFront mehr versucht wird, SSL zu verwenden, um eine Verbindung zu Ihrem Ursprungsserver herzustellen.

Online-SSL-Prüfung

Sie finden ein Test-Tool für SSL-Verbindungen, indem Sie im Internet nach den Begriffen "online ssl checker" suchen. In der Regel geben Sie den Namen Ihrer Domain an, und das Tool gibt eine Vielzahl von Informationen zu Ihrem SSL/TLS Zertifikat zurück. Vergewissern Sie sich, dass das Zertifikat Ihren Domänennamen aus den Feldern Allgemeiner Name oder Alternative Antragstellernamen enthält.

OpenSSL

Um bei der Behebung von HTTP 502-Fehlern von zu helfen CloudFront, können Sie OpenSSL verwenden, um zu versuchen, eine SSL/TLS Verbindung zu Ihrem Ursprungsserver herzustellen. Wenn OpenSSL keine Verbindung herstellen kann, kann dies auf ein Problem mit der Konfiguration Ihres Ursprungsservers hinweisen. SSL/TLS Wenn OpenSSL eine Verbindung herstellen kann, gibt es Informationen über das Zertifikat des Ursprungsservers zurück, einschließlich des allgemeinen Namens (Feld Subject CN) des Zertifikats und des alternativen Antragstellernamens (Feld Subject Alternative Name).

Verwenden Sie den folgenden OpenSSL-Befehl, um die Verbindung zu Ihrem Ursprungsserver zu testen (origin domainersetzen Sie ihn durch den Domainnamen Ihres Ursprungsservers, z. B. example.com):

openssl s_client -connect origin domain name:443

Wenn Folgendes zutrifft:

  • Ihr Ursprungsserver unterstützt mehrere Domainnamen mit mehreren Zertifikaten SSL/TLS

  • Ihre Distribution ist so konfiguriert, dass der Host-Header an den Ursprung weitergeleitet wird.

Fügen Sie dann die -servername Option wie im folgenden Beispiel zum OpenSSL-Befehl hinzu (CNAMEersetzen Sie sie durch den CNAME, der in Ihrer Distribution konfiguriert ist):

openssl s_client -connect origin domain name:443 -servername CNAME

Origin reagiert nicht mit supported ciphers/protocols

CloudFront stellt mithilfe von Chiffren und Protokollen eine Verbindung zu den Ursprungsservern her. Eine Liste der unterstützten Chiffren und Protokolle finden Sie unter. CloudFront Unterstützte Protokolle und Chiffren zwischen und dem Ursprung CloudFront Wenn Ihr Ursprungsserver beim SSL/TLS Austausch nicht mit einer dieser Chiffren oder Protokolle antwortet, CloudFront schlägt die Verbindung fehl. Sie können überprüfen, ob Ihr Ursprungsserver diese Verschlüsselungsverfahren und Protokolle unterstützt, indem Sie ein Online-Tool wie SSL-Labs verwenden. Geben Sie den Domain-Namen Ihres Ursprungs-Servers in das Feld Hostname ein und wählen Sie anschließend OK aus. Überprüfen Sie die Felder Common names (Allgemeine Namen) und Alternative names (Alternative Namen) in dem Test; entspricht ihr Inhalt dem Domain-Namen Ihres Ursprungs-Servers? Nachdem der Test beendet ist, suchen Sie die Abschnitte Protocols und Cipher Suites in den Testergebnissen; welche Verschlüsselungsverfahren oder Protokolle werden von Ihrem Ursprungs-Server unterstützt? Vergleichen Sie die Produkte mit der Liste von Unterstützte Protokolle und Chiffren zwischen und dem Ursprung CloudFront.

SSL/TLS Das Ursprungszertifikat ist abgelaufen, ungültig, selbstsigniert oder die Zertifikatskette ist in der falschen Reihenfolge

Wenn der Ursprungsserver Folgendes zurückgibt, trennt er CloudFront die TCP-Verbindung, gibt den HTTP-Statuscode 502 (Bad Gateway) zurück und setzt den X-Cache Header aufError from cloudfront:

  • Abgelaufenes Zertifikat

  • Ungültiges Zertifikat

  • Self-signed Zertifikat

  • Zertifikatkette in der falschen Reihenfolge

Anmerkung

Wenn die gesamte Zertifikatskette, einschließlich des Zwischenzertifikats, nicht vorhanden ist, wird CloudFront die TCP-Verbindung unterbrochen.

Hinweise zur Installation eines SSL/TLS Zertifikats auf Ihrem benutzerdefinierten Ursprungsserver finden Sie unterErfordern Sie HTTPS für die Kommunikation zwischen CloudFront und Ihrem benutzerdefinierten Ursprung.

Ursprungsserver ist über die eingestellten Ports in den Ursprungseinstellungen nicht erreichbar

Wenn Sie in Ihrer CloudFront Distribution einen Ursprung erstellen, können Sie die Ports festlegen, über die eine CloudFront Verbindung zum Ursprung für den HTTP- und HTTPS-Verkehr hergestellt wird. In der Standardeinstellung sind dies TCP 80/443. Sie haben die Möglichkeit, diese Ports zu ändern. Wenn Ihr Ursprung den Verkehr auf diesen Ports aus irgendeinem Grund ablehnt oder wenn Ihr Backend-Server auf den Ports nicht reagiert, kann keine Verbindung hergestellt CloudFront werden.

Sie können diese Probleme zu beheben, indem Sie alle Firewalls überprüfen, die in Ihrer Infrastruktur ausgeführt werden, und sich vergewissern, dass sie die unterstützten IP-Bereiche nicht blockieren. Weitere Informationen finden Sie unter AWS -IP-Adressbereiche im Benutzerhandbuch für Amazon VPC. Überprüfen Sie außerdem, ob Ihr Webserver auf dem Ursprungsserver ausgeführt wird.

Lambda-Validierungsfehler

Wenn Sie Lambda@Edge verwenden, kann der HTTP-Statuscode 502 anzeigen, dass Ihre Lambda-Funktionsantwort falsch gebildet wurde oder ungültigen Inhalt enthielt. Weitere Informationen zur Behebung von Lambda@Edge-Fehlern finden Sie unter Testen und Debuggen von Lambda@Edge-Funktionen.

CloudFront Fehler bei der Validierung der Funktion

Wenn Sie CloudFront Funktionen verwenden, kann ein HTTP 502-Statuscode darauf hinweisen, dass die CloudFront Funktion versucht, einen schreibgeschützten Header hinzuzufügen, zu löschen oder zu ändern. Dieser Fehler tritt beim Testen nicht auf, sondern erst, nachdem Sie die Funktion bereitgestellt und die Anforderung ausgeführt haben. Um diesen Fehler zu beheben, überprüfen und aktualisieren Sie Ihre CloudFront Funktion. Weitere Informationen finden Sie unter Aktualisieren von Funktionen.

DNS-Fehler (NonS3OriginDnsError)

Ein HTTP 502-Fehler mit dem NonS3OriginDnsError Fehlercode weist darauf hin, dass ein DNS-Konfigurationsproblem vorliegt, das die Verbindung zum Ursprung CloudFront verhindert. Wenn Sie diesen Fehler von erhalten CloudFront, stellen Sie sicher, dass die DNS-Konfiguration des Ursprungs korrekt ist und funktioniert.

Wenn es eine Anfrage für ein Objekt CloudFront erhält, das abgelaufen ist oder sich nicht in seinem Cache befindet, sendet es eine Anfrage an den Ursprung, um das Objekt abzurufen. Um eine erfolgreiche Anfrage an den Ursprung zu stellen, CloudFront führt eine DNS-Auflösung für die Ursprungsdomäne durch. Wenn beim DNS-Dienst für Ihre Domain Probleme auftreten, CloudFront können Sie den Domainnamen nicht auflösen, um die IP-Adresse abzurufen, was zu einem HTTP 502-Fehler führt (NonS3OriginDnsError). Sie können dieses Problem beheben, indem Sie sich an Ihren DNS-Anbieter wenden. Wenn Sie Amazon Route 53 verwenden, finden Sie weitere Informationen unter Warum kann ich nicht auf meine Website zugreifen, die Route-53-DNS-Services verwendet?

Sie können dieses Problem weiterhin beheben, indem Sie sicherstellen, dass die autoritativen Name-Server für die Stamm-Domäne bzw. den Zone Apex (z. B. example.com) Ihres Ursprungs-Servers richtig funktionieren. Sie können die folgenden Befehle verwenden, um die Nameserver für Ihren Ursprungsserver-Apex zu finden, zum Beispiel mit einem Tool wie dig oder nslookup:

dig OriginAPEXDomainName NS +short
nslookup -query=NS OriginAPEXDomainName

Wenn Sie die Namen Ihrer Name-Server erhalten haben, verwenden Sie die folgenden Befehle, um den Domain-Namen Ihres Ursprungsservers von ihnen abzufragen; so können Sie sicherstellen, dass alle eine Antwort zurückgeben:

dig OriginDomainName @NameServer
nslookup OriginDomainName NameServer
Wichtig

Stellen Sie sicher, dass Sie diese DNS-Problembehandlung auf einem Computer durchführen, der mit dem öffentlichen Internet verbunden ist. CloudFront löst die Ursprungsdomäne mithilfe von öffentlichem DNS im Internet auf. Daher ist es wichtig, die Fehlerbehebung in einem ähnlichen Kontext durchzuführen.

Wenn der Ursprung eine Subdomäne ist, deren DNS-Berechtigung an einen anderen Nameserver als die Stammdomäne delegiert ist, stellen Sie sicher, dass die Datensätze für den Nameserver (NS) und Autoritätsursprung (SOA) für die Subdomäne korrekt konfiguriert sind. Sie können mit Befehlen, die den vorherigen Beispielen ähneln, nach diesen Datensätzen suchen.

Weitere Informationen zu DNS finden Sie unter DNS-Konzepte (Domain Name System) in der Dokumentation zu Amazon Route 53.

502-Fehler des als Ursprung verwendeten Application Load Balancer

Wenn Sie Application Load Balancer als Ursprung verwenden und einen 502-Fehler erhalten, finden Sie weitere Informationen unter Wie behebe ich den HTTP-Fehler 502 des Application Load Balancer?

API Gateway Ursprung 502-Fehler

Wenn Sie API Gateway verwenden und einen 502-Fehler erhalten, finden Sie weitere Informationen unter Wie behebe ich den HTTP-Fehler 502 von REST-APIs in API Gateway mit Lambda-Proxyintegration?