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.
HTTPCode d'état 502 (Mauvaise passerelle)
CloudFrontrenvoie 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 DNS configuration CloudFront empêche la connexion à l'origine.
Rubriques
- SSL/échec de TLS négociation entre CloudFront et un serveur d'origine personnalisé
- L’origine ne répond pas avec les chiffrements/protocoles pris en charge
- SSL/le TLS certificat d'origine est expiré, non valide, auto-signé ou la chaîne de certificats est dans le mauvais ordre
- L’origine ne répond pas sur des ports spécifiés dans les paramètres de l’origine
- Erreur de validation Lambda
- CloudFront erreur de validation de fonction
- DNSerreur (NonS3OriginDnsError)
- Erreur d'origine 502 de l'Application Load Balancer
- APIErreur Gateway Origin 502
SSL/échec de TLS négociation entre CloudFront et un serveur d'origine personnalisé
Si vous utilisez une origine personnalisée qui nécessite HTTPS entre CloudFront et votre origine, des noms de domaine incompatibles peuvent provoquer des erreurs. Le TLS certificatSSL/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, la TLS poignée de mainSSL/échoue et CloudFront renvoie un code d'HTTPétat 502 (Bad Gateway) et définit l'X-Cache
en-tête sur. 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 SSL vérificateur en ligne ou OpenSSL. Si les noms de domaine ne correspondent pas, vous avez deux options :
-
Obtenez un nouveau TLS certificatSSL/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 de l'utiliser SSL pour vous connecter à votre origine.
SSLVérificateur en ligne
Pour trouver un outil de SSL test, recherchez sur Internet « vérificateur SSL en ligne ». En général, vous spécifiez le nom de votre domaine, et l'outil renvoie diverses informations sur votre TLS certificat SSL /. Vérifiez que le certificat contient votre nom de domaine dans les champs Common Names ou Subject Alternative Names.
Ouvert SSL
Pour résoudre les erreurs HTTP 502 provenant de CloudFront, vous pouvez utiliser Open SSL pour essayer d'effectuer une 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 configuration. Si Open SSL parvient à établir une connexion, il renvoie des informations sur le certificat du serveur d'origine, notamment le nom commun du certificat (Subject CN
champ) et le nom alternatif du sujet (Subject Alternative Name
champ).
Utilisez la SSL commande Open suivante pour tester la connexion à votre serveur d'origine (remplacez origin domain
avec 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 TLS certificatsSSL/
-
Votre distribution est configurée pour transférer l’en-tête
Host
vers l’origine
Ajoutez ensuite l'-servername
option à la SSL commande Ouvrir, comme dans l'exemple suivant (remplacez CNAME
avec CNAME ce qui est 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 des 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'TLSéchangeSSL/, elle CloudFront ne parvient pas à se connecter. Vous pouvez vérifier que votre origine prend en charge les chiffrements et les protocoles en utilisant un outil en ligne tel que SSL Labs.
SSL/le TLS certificat d'origine est expiré, non valide, auto-signé ou la chaîne de certificats est dans le mauvais ordre
Si le serveur d'origine renvoie ce qui suit, CloudFront abandonne la TCP connexion, renvoie le code d'HTTPétat 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 interrompt la TCP connexion.
Pour plus d'informations sur l'installation d'un TLS certificatSSL/sur votre serveur d'origine personnalisé, consultezExigez 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 avec for HTTP et HTTPS traffic. Par défaut, il s'agit de TCP 80/443. Vous avez la possibilité de modifier ces ports. Si votre point d'origine rejette le trafic sur ces ports pour quelque raison que ce soit, 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 VPC l'utilisateur Amazon. 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 d'état HTTP 502 peut indiquer que la réponse de votre fonction Lambda a été mal formée ou qu'elle contient un 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.
DNSerreur (NonS3OriginDnsError
)
Une erreur HTTP 502 avec le code NonS3OriginDnsError
d'erreur indique qu'un problème de DNS configuration CloudFront empêche la connexion à l'origine. Si cette erreur provient de CloudFront, assurez-vous que la DNS configuration 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 DNS résolution sur le domaine d'origine. Si le DNS service 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 DNS fournisseur ou, si vous utilisez Amazon Route 53, consultez Pourquoi ne puis-je pas accéder à mon site Web qui utilise les DNS services 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 DNS dépannage à l'aide d'un ordinateur connecté à l'Internet public. CloudFront résout le domaine d'origine en utilisant le DNS mode 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 DNS l'autorité 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'informationsDNS, consultez les concepts du système de noms de domaine (DNS) dans la documentation 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 Application Load Balancer
APIErreur Gateway Origin 502
Si vous utilisez API Gateway et recevez une erreur 502, voir Comment résoudre les erreurs HTTP 502 à partir de l'intégration du proxy API Gateway REST APIs avec Lambda