Wie behebe ich Probleme mit der Verbindung meiner CloudFront-Distribution zu einem benutzerdefinierten Ursprung über HTTPS?

Lesedauer: 3 Minute
0

Ich habe meine Amazon CloudFront-Distribution so konfiguriert, dass sie über HTTPS eine Verbindung zu einem benutzerdefinierten Ursprung herstellt. Jetzt erhalte ich den Fehler „CloudFront konnte keine Verbindung zum Ursprung herstellen“ mit dem HTTP-Statuscode 502 (Bad Gateway).

Lösung

Sicherstellen, dass der Ursprungs-Domainname der CloudFront-Distribution mit dem Domainnamen des Zertifikats übereinstimmt

Stellen Sie sicher, dass der in Ihrer CloudFront-Distribution angegebene Ursprungs-Domainname mit einem Domainnamen auf Ihrem ursprünglichen SSL/TLS-Zertifikat übereinstimmt. Der Ursprungs-Domainname der Distribution kann mit einem der folgenden Werte übereinstimmen:

  • Dem als Common Name (CN) des Zertifikats angegebenen Domainnamen
  • Dem Domainnamen, der im Subject Alternative Name (SAN) des Zertifikats angegeben ist

Wenn der Ursprungs-Domainname mit keinem mit Ihrem Zertifikat verknüpften Domainnamen übereinstimmt, gibt CloudFront den HTTP-Statuscode 502 (Bad Gateway) zurück.

Nach fehlenden Zwischen-Zertifizierungsstellen suchen

Verwenden Sie einen SSL-Checker, um zu testen, ob die Zertifikatskette Ihres Ursprungs verfügbar ist und keine Zwischen-Zertifizierungsstellen benötigt werden.

Wenn Sie Elastic Load Balancing als Ihren benutzerdefinierten Ursprung verwenden und die Zertifikatskette aktualisieren müssen, gehen Sie wie folgt vor:

Laden Sie das Zertifikat erneut mit der richtigen Zertifikatskette hoch.

-oder-

Verwenden Sie den AWS Certificate Manager (ACM), um ein öffentliches Zertifikat anzufordern, das Ihre Domain sichert. ACM ist vollständig in Elastic Load Balancing integriert.

Die unterstützten Protokollrichtlinien und Verschlüsselungen Ihres Ursprungs testen

Damit der SSL-Handshake erfolgreich ist, muss Ihr Ursprung die von CloudFront verwendeten Verschlüsselungen unterstützen.

Wenn in Ihrer Ursprungs-Protokollrichtlinie SSLv3 aktiviert ist, verwendet CloudFront nur SSLv3, um über die Befehlszeile oder das Windows-Terminal mit Ihrem Ursprung zu kommunizieren.

Hinweis: OpenSSL ist normalerweise standardmäßig auf Linux- und macOS-Systemen verfügbar. OpenSSL für Windows ist auf der OpenSSL-Website verfügbar.

Führen Sie die folgenden OpenSSL-Befehle aus, um zu testen, ob Ihr Ursprung die von CloudFront verwendeten Verschlüsselungen unterstützt.

Wenn Ihre Ursprungs-Protokollrichtlinie auf SSLv3 festgelegt ist, führen Sie Folgendes aus:

echo | openssl s_client -ssl3 -cipher 'ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443

Wenn Ihr Ursprung TLS verwendet, testen Sie Ihren Ursprung für die einzelnen Protokolle mit den folgenden Befehlen:

Führen Sie für TLS Folgendes aus:

echo | openssl s_client -tls1 -cipher 'ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443 -servername your.origin.domain

Führen Sie für TLS 1.1 Folgendes aus:

echo | openssl s_client -tls1_1 -cipher 'ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443 -servername your.origin.domain

Führen Sie für TLS 1.2 Folgendes aus:

echo | openssl s_client -tls1_2 -cipher 'ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-SHA384 AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443 -servername your.origin.domain

Hinweis: Legen Sie den Wert von -servername auf den Ursprungs-Domainnamen fest. Wenn Sie CloudFront verwenden, um den Host-Header weiterzuleiten, legen Sie alternativ -servername auf den CNAME aus der CloudFront-Anfrage fest.

Wenn Sie erfolgreich eine Verbindung zum Ursprung hergestellt haben, wird Ihnen eine Ausgabe der vorherigen Befehle angezeigt, die der folgenden ähnelt. Die Ausgabe bestätigt, dass Ihre Verbindung mit der SSL- oder TLS-Version und den unterstützten Verschlüsselungen erfolgreich hergestellt wurde.

New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-SHA256
....
Timeout : 7200 (sec)
Verify return code: 0 (ok)
----
DONE

Hinweis: Weitere Hinweise zur Fehlerbehebung bei 502-Fehlern finden Sie unter HTTP 502-Statuscode (Bad Gateway).


Ähnliche Informationen

HTTPS für die Kommunikation zwischen CloudFront und Ihrem benutzerdefinierten Ursprung voraussetzen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren