Código de status HTTP 502 (Gateway inválido) - Amazon CloudFront

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Código de status HTTP 502 (Gateway inválido)

Um código de status HTTP 502 (Bad Gateway) indica que CloudFront não foi possível servir o objeto solicitado porque não conseguiu se conectar ao servidor de origem.

Falha na negociação de SSL/TLS entre CloudFront e um servidor de origem personalizado

Se você usa uma origem personalizada e configurou CloudFront para exigir HTTPS entre CloudFront e sua origem, o problema pode ser nomes de domínio incompatíveis. O certificado SSL/TLS instalado em sua origem inclui um nome de domínio no campo Common Name (Nome comum) e possivelmente vários outros no campo Subject Alternative Names (Nomes alternativos do assunto). (CloudFront suporta caracteres curinga em nomes de domínio certificados.) Um dos nomes de domínio no certificado deve corresponder a um ou aos dois valores abaixo:

  • O valor especificado em Origin Domain Name para a origem aplicável na sua distribuição.

  • O valor do Host cabeçalho, se você configurou CloudFront para Host encaminhá-lo para sua origem. Para obter mais informações sobre como encaminhar o cabeçalho Host para sua origem, consulte Armazenar conteúdo em cache com base nos cabeçalhos de solicitação.

Se os nomes de domínio não corresponderem, o handshake SSL/TLS falhará e CloudFront retornará um código de status HTTP 502 (Bad Gateway) e definirá o cabeçalho como. X-Cache Error from cloudfront

Para determinar se os nomes de domínio no certificado são correspondentes ao Nome de domínio de origem da distribuição ou ao cabeçalho Host, você pode usar um verificador SSL online ou o OpenSSL. Se os nomes de domínio não forem correspondentes, você tem duas opções:

  • Obtenha um novo certificado SSL/TLS que inclua os nomes de domínio aplicáveis.

    Se você usar o AWS Certificate Manager (ACM), consulte Solicitar um certificado no Guia do usuário do AWS Certificate Manager para solicitar um novo certificado.

  • Altere a configuração de distribuição para CloudFront não tentar mais usar SSL para se conectar à sua origem.

Verificador SSL online

Para encontrar uma ferramenta de teste de SSL, pesquise na Internet por "verificador ssl online". Normalmente, você especifica o nome do seu domínio, e a ferramenta retorna uma variedade de informações sobre seu certificado SSL/TLS. Confirme se o certificado contém seu nome de domínio nos campos Nome comum ou Nomes alternativos da entidade.

OpenSSL

Para ajudar a solucionar erros de HTTP 502 CloudFront, você pode usar o OpenSSL para tentar fazer uma conexão SSL/TLS com seu servidor de origem. Se o OpenSSL não for capaz de fazer uma conexão, isso pode indicar um problema com a configuração de SSL/TLS do servidor de origem. Se o OpenSSL for capaz de fazer uma conexão, ele retornará informações sobre o certificado do servidor de origem, incluindo o nome comum (campo Subject CN) e o nome alternativo da entidade (campo Subject Alternative Name) do certificado.

Use o seguinte comando OpenSSL para testar a conexão com o servidor de origem (substitua o nome de domínio de origem pelo nome de domínio do servidor de origem, como exemplo.com):

openssl s_client -connect origin domain name:443

Se o seguinte for verdadeiro:

  • Seu servidor de origem oferece suporte a vários nomes de domínio com vários certificados SSL/TLS

  • Sua distribuição está configurada para encaminhar o cabeçalho Host para a origem

Depois adicione a opção -servername ao comando do OpenSSL, como no exemplo a seguir (substitua CNAME pelo CNAME configurado em sua distribuição):

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

A origem não está respondendo com criptografias/protocolos compatíveis

CloudFront se conecta aos servidores de origem usando cifras e protocolos. Para obter uma lista das cifras e protocolos que oferecem CloudFront suporte, consulte. Protocolos e cifras suportados entre CloudFront e a origem Se sua origem não responder com uma dessas cifras ou protocolos na troca SSL/TLS, haverá falha na conexão. CloudFront Você pode validar se a sua origem é compatível com as criptografias e os protocolos usando uma ferramenta online, como o SSL Labs. Digite o nome de domínio da sua origem no campo Hostname e, em seguida, escolha Submit. Analise os campos Common names e Alternative names do teste para ver se eles são correspondentes com o nome de domínio da sua origem. Após a conclusão do teste, encontre as seções Protocols e Cipher Suites nos resultados do teste para ver quais criptografias ou protocolos são compatíveis com sua origem. Compare o conteúdo com a lista de Protocolos e cifras suportados entre CloudFront e a origem.

O certificado SSL/TLS da origem expirou, é inválido ou autoassinado, ou a cadeia de certificados está no pedido errado

Se o servidor de origem retornar o seguinte, CloudFront desligará a conexão TCP, retornará o código de status HTTP 502 (Bad Gateway) e definirá o X-Cache cabeçalho como: Error from cloudfront

  • Um certificado expirado

  • Certificado inválido

  • Certificado autoassinado

  • Cadeia de certificados na ordem errada

nota

Se a cadeia completa de certificados, incluindo o certificado intermediário, não estiver presente, CloudFront a conexão TCP será interrompida.

Para obter informações sobre como instalar um certificado SSL/TLS no seu servidor de origem personalizado, consulte Exigindo HTTPS para comunicação entre CloudFront e sua origem personalizada.

A origem não está respondendo nas portas especificadas nas configurações

Ao criar uma origem na sua CloudFront distribuição, você pode definir as portas que CloudFront se conectam à origem para tráfego HTTP e HTTPS. Por padrão, são elas: TCP 80/443. Você tem a opção de modificar essas portas. Se sua origem estiver rejeitando o tráfego nessas portas por qualquer motivo, ou se o servidor de back-end não estiver respondendo nas portas, não CloudFront conseguirá se conectar.

Para solucionar esses problemas, marque todos os firewalls em execução na sua infraestrutura e valide se eles não são bloqueando os intervalos de IP compatíveis. Para obter mais informações, consulte Intervalos de endereços IP da AWS no Referência geral da Amazon Web Services. Além disso, verifique se o seu servidor da web está em execução na origem.