Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Code d’état HTTP 502 (Passerelle incorrecte)
CloudFront renvoie un code d'état HTTP 502 (Bad Gateway) lorsqu'il CloudFront n'a pas pu servir l'objet demandé car il n'a pas pu se connecter au serveur d'origine.
Si vous utilisez Lambda @Edge, le problème est peut-être dû à une erreur de validation Lambda. Si vous recevez une erreur HTTP 502 avec le code NonS3OriginDnsError
d'erreur, il est probable qu'un problème de configuration DNS CloudFront empêche la connexion à l'origine.
Rubriques
Echec de négociation SSL/TLS entre CloudFront et un serveur d'origine personnalisé
Si vous utilisez une origine personnalisée qui nécessite le protocole HTTPS entre CloudFront et votre origine, des noms de domaine incompatibles peuvent provoquer des erreurs. Le certificat SSL/TLS de votre origine doit inclure un nom de domaine correspondant soit au domaine d'origine que vous avez spécifié pour la CloudFront distribution, soit à l'Host
en-tête de la demande d'origine.
Si les noms de domaine ne correspondent pas, le handshake SSL/TLS échoue et CloudFront renvoie un code d'état HTTP 502 (Bad Gateway) et définit l'en-tête sur. X-Cache
Error from cloudfront
Pour déterminer si les noms de domaine du certificat correspondent au domaine d'origine de la distribution ou de l'Host
en-tête, vous pouvez utiliser un vérificateur SSL en ligne ou OpenSSL. Si les noms de domaine ne correspondent pas, vous avez deux options :
-
Demandez un nouveau certificat SSL/TLS qui inclut les noms de domaine applicables.
Si vous utilisez AWS Certificate Manager (ACM), consultez la section Demande d'un certificat public dans le guide de AWS Certificate Manager l'utilisateur pour demander un nouveau certificat.
-
Modifiez la configuration de distribution afin de CloudFront ne plus essayer d'utiliser le protocole SSL pour vous connecter à votre origine.
Outil de vérification SSL en ligne
Pour trouver un outil de test SSL, recherchez sur Internet « online ssl checker ». En règle générale, vous spécifiez le nom de votre domaine, et l’outil renvoie différentes informations sur votre certificat SSL/TLS. Vérifiez que le certificat contient votre nom de domaine dans les champs Common Names ou Subject Alternative Names.
OpenSSL
Pour résoudre les erreurs HTTP 502 provenant de CloudFront, vous pouvez utiliser OpenSSL pour essayer d'effectuer une configuration. SSL/TLS connection to your origin server. If OpenSSL is not able
to make a connection, that can indicate a problem with your origin server's
SSL/TLS Si OpenSSL est en mesure d'établir une connexion, il renvoie des informations sur le certificat du serveur d'origine, y compris le nom commun (champ Subject CN
) et le nom alternatif d'objet (champ Subject Alternative Name
) du certificat.
Utilisez la commande OpenSSL suivante pour tester la connexion à votre serveur d'origine (origin domain
remplacez-la par le nom de domaine de votre serveur d'origine, tel que exemple.com) :
openssl s_client -connect
origin domain
name
:443
Si les conditions suivantes sont réunies :
-
Votre serveur d’origine prend en charge plusieurs noms de domaine avec plusieurs certificats SSL/TLS
-
Votre distribution est configurée pour transférer l’en-tête
Host
vers l’origine
Ajoutez ensuite l'-servername
option à la commande OpenSSL, comme dans l'exemple suivant (CNAME
remplacez-la par le CNAME configuré dans votre distribution) :
openssl s_client -connect
origin domain
name
:443 -servername
CNAME
L’origine ne répond pas avec les chiffrements/protocoles pris en charge
CloudFront se connecte aux serveurs d'origine à l'aide de chiffrements et de protocoles. Pour obtenir la liste des chiffrements et protocoles pris CloudFront en charge, consultez. Protocoles et chiffrements pris en charge entre CloudFront et l'origine Si votre origine ne répond pas avec l'un de ces chiffrements ou protocoles dans l'échange SSL/TLS, elle ne parvient pas à se connecter. CloudFront Vous pouvez vérifier que votre origine prend en charge les chiffrements et les protocoles à l’aide d’un outil en ligne tel que SSL Labs
Le certificat SSL/TLS sur l’origine a expiré, n’est pas valide, est auto-signé ou la chaîne de certificats est dans l’ordre incorrect
Si le serveur d'origine renvoie ce qui suit, CloudFront abandonne la connexion TCP, renvoie le code d'état HTTP 502 (Bad Gateway) et définit l'X-Cache
en-tête comme suit : Error from cloudfront
-
Certificat expiré
-
Certificat non valide
-
Certificat auto-signé
-
Chaîne de certificats dans le désordre
Note
Si la chaîne complète de certificats, y compris le certificat intermédiaire, n'est pas présente, CloudFront supprime la connexion TCP.
Pour obtenir des informations sur l’installation d’un certificat SSL/TLS sur votre serveur d’origine personnalisée, consultez Exigez le protocole HTTPS pour la communication entre CloudFront et votre origine personnalisée.
L’origine ne répond pas sur des ports spécifiés dans les paramètres de l’origine
Lorsque vous créez une origine sur votre CloudFront distribution, vous pouvez définir les ports qui CloudFront se connectent à l'origine pour le trafic HTTP et HTTPS. Par défaut, il s’agit des ports TCP 80/443. Vous avez la possibilité de modifier ces ports. Si votre point d'origine rejette le trafic sur ces ports pour une raison quelconque, ou si votre serveur principal ne répond pas sur les ports, la connexion CloudFront échouera.
Pour résoudre ces problèmes, vérifiez les pare-feu qui s’exécutent dans votre infrastructure et vérifiez qu’ils ne bloquent pas les plages IP prises en charge. Pour plus d'informations, consultez les plages d'adresses AWS IP dans le guide de l'utilisateur Amazon VPC. Vous pouvez également vérifier que votre serveur web s’exécute sur l’origine.
Erreur de validation Lambda
Si vous utilisez Lambda@Edge, un code de statut HTTP 502 peut indiquer que la réponse de votre fonction Lambda était mal formulée ou comprenait du contenu non valide. Pour de plus amples informations sur le dépannage des erreurs Lambda@Edge, veuillez consulter Tester et déboguer les fonctions Lambda @Edge.
CloudFront erreur de validation de fonction
Si vous utilisez des CloudFront fonctions, un code d'état HTTP 502 peut indiquer que la CloudFront fonction essaie d'ajouter, de supprimer ou de modifier un en-tête en lecture seule. Cette erreur ne s'affiche pas pendant le test, mais elle apparaîtra une fois que vous aurez déployé la fonction et exécuté la demande. Pour résoudre cette erreur, vérifiez et mettez à jour votre CloudFront fonction. Pour de plus amples informations, veuillez consulter Fonctions de mise à jour.
Erreur DNS (NonS3OriginDnsError
)
Une erreur HTTP 502 avec le code NonS3OriginDnsError
d'erreur indique qu'un problème de configuration DNS CloudFront empêche la connexion à l'origine. Si cette erreur provient de CloudFront, assurez-vous que la configuration DNS de l'origine est correcte et fonctionne.
Lorsqu'il CloudFront reçoit une demande pour un objet expiré ou qui n'est pas dans son cache, il adresse une demande à l'origine pour obtenir l'objet. Pour envoyer une demande à l'origine avec succès, CloudFront effectue une résolution DNS sur le domaine d'origine. Si le service DNS de votre domaine rencontre des problèmes, CloudFront vous ne parvenez pas à résoudre le nom de domaine pour obtenir l'adresse IP, ce qui entraîne une erreur HTTP 502 (NonS3OriginDnsError
). Pour résoudre ce problème, contactez votre fournisseur DNS ou, si vous utilisez Amazon Route 53, consultez Pourquoi est-ce que je ne peux pas accéder à mon site Web qui utilise les services DNS Route 53 ?
Pour continuer à résoudre ce problème, vérifiez que les serveurs de noms faisant autorité du domaine racine ou de la zone apex (comme example.com
) de votre origine fonctionne correctement. Vous pouvez utiliser les commandes suivantes pour trouver les serveurs de noms pour votre origine apex, à l'aide d'un outil tel que dig
dig
OriginAPEXDomainName
NS +short
nslookup -query=NS
OriginAPEXDomainName
Quand vous avez les noms de vos serveurs de noms, utilisez les commandes suivantes pour interroger le nom de domaine de votre origine sur ceux-ci afin de vous assurer qu’ils répondent :
dig
OriginDomainName
@NameServer
nslookup
OriginDomainName
NameServer
Important
Assurez-vous d'effectuer ce dépannage DNS à l'aide d'un ordinateur connecté à l'Internet public. CloudFront résout le domaine d'origine à l'aide du DNS public sur Internet. Il est donc important de résoudre le problème dans un contexte similaire.
Si votre origine est un sous-domaine dont l'autorité DNS est déléguée à un serveur de noms différent du domaine racine, assurez-vous que les enregistrements du serveur de noms (NS
) et du début de l'autorité (SOA
) sont correctement configurés pour le sous-domaine. Vous pouvez vérifier ces enregistrements à l'aide de commandes similaires aux exemples précédents.
Pour plus d'informations sur DNS, consultez les Concepts du système de noms de domaine (DNS) dans la documentation d'Amazon Route 53.
Erreur d'origine 502 de l'Application Load Balancer
Si vous utilisez Application Load Balancer comme origine et que vous recevez une erreur 502, consultez Comment résoudre les erreurs HTTP 502 d'Application Load Balancer
Erreur 502 d'origine de l'API Gateway
Si vous utilisez API Gateway et que vous recevez une erreur 502, consultez Comment résoudre les erreurs HTTP 502 depuis API Gateway REST APIs avec l'intégration du proxy Lambda