Ir para o conteúdo

Como soluciono o erro 502 “The request could not be satisfied” no CloudFront?

6 minuto de leitura
0

Eu configurei uma distribuição do Amazon CloudFront com um domínio personalizado. Quero solucionar o erro 502 “The request could not be satisfied” que recebo quando uso o CloudFront para solicitar o domínio alternativo de nome canônico (CNAME).

Resolução

O CloudFront não consegue resolver o endereço IP de origem

Se o CloudFront não conseguir resolver o domínio de origem, ele retornará o erro “The request could not be satisfied”. A menos que sua distribuição use somente o Amazon Virtual Private Cloud (Amazon VPC) Origins, o CloudFront deve ser capaz de resolver seu domínio de origem por meio de consultas públicas de DNS.

Você não precisa tornar sua origem acessível publicamente, mas deve poder consultar publicamente seu domínio. Para solucionar esse problema, use um comando dig ou nslookup para determinar se o domínio de origem é resolvido para um endereço IP.

Se você usa o Linux, execute o seguinte comando:

dig ORIGIN_DOMAIN_NAME

Se você usa o Windows, execute o seguinte comando:

nslookup ORIGIN_DOMAIN_NAME

Observação: substitua ORIGIN_DOMAIN_NAME pelo nome de domínio da sua origem.

Os comandos retornam o endereço IP do nome de domínio de origem. Use uma ferramenta de verificação de DNS para verificar a resolução de DNS em diferentes regiões. Por exemplo, é possível usar a ferramenta Check DNS propagation no site do DNS Checker. Verifique se os métodos de verificação não conseguem consultar o domínio de sua origem. Em seguida, entre em contato com seu provedor de DNS público para confirmar se existe um registro DNS que pode ser resolvido publicamente para o domínio de origem.

Para obter mais informações sobre soluções de problemas de DNS, consulte Como o DNS funciona e como soluciono falhas parciais ou intermitentes de DNS?

O certificado SSL/TLS não corresponde ao nome de domínio

O certificado SSL/TLS na origem deve incluir um dos seguintes nomes de domínio:

  • O nome do domínio de origem no campo do certificado Nome comum ou no campo Nomes alternativos do assunto.
  • O nome de domínio do cabeçalho do host para os cabeçalhos de host do visualizador de entrada que a solicitação encaminha para a origem na distribuição do CloudFront.

Para verificar o Nome comum e os Nomes alternativos do assunto no certificado, execute o seguinte comando:

openssl s_client -connect DOMAIN:443 -servername SERVER_DOMAIN | openssl x509 -text | grep -E '(CN|Alternative)' -A 2

Observação: substitua DOMÍNIO pelo nome do domínio de origem e SERVER_DOMAIN pelo nome do domínio de origem. Se a solicitação encaminhar o cabeçalho do host do visualizador para a origem, substitua SERVER_DOMAIN pelo valor do cabeçalho do host de entrada.

Você deve configurar a política de cache ou a política de solicitação de origem para incluir o cabeçalho do host nos seguintes cenários:

  • O certificado de origem inclui o valor do cabeçalho do host do visualizador como o nome comum do certificado SSL/TLS ou o nome alternativo do assunto (SAN).
  • A solicitação não encaminha o cabeçalho do host para a origem.

O certificado de origem expirou, não é confiável, é autoassinado ou a cadeia de certificados está na ordem errada

Uma autoridade de certificação (CA) confiável deve assinar o certificado que você instalou na origem personalizada. Para obter uma lista de CAs confiáveis, consulte Autoridades de certificação no site do Mozilla. O CloudFront não oferece suporte a origens que usam certificados SSL/TLS autoassinados.

Para verificar se seu certificado de origem expirou, execute o seguinte comando OpenSSL:

openssl s_client -connect DOMAIN:443 -servername SERVER_DOMAIN | openssl x509 -text | grep Validity -A 3

Observação: substitua DOMÍNIO pelo nome do domínio de origem e SERVER_DOMAIN pelo nome do domínio de origem. Se a solicitação encaminhar o cabeçalho do host do visualizador para a origem, substitua SERVER_DOMAIN pelo valor do cabeçalho do host de entrada.

Na saída do comando, encontre os parâmetros Não antes e Não depois. Confirme se a data e a hora atuais estão dentro do período de validade do certificado.

A falta de certificados CA intermediários ou uma ordem incorreta dos certificados intermediários fazem com que a comunicação entre HTTPS e a origem falhe.

Para verificar a cadeia de certificados, execute o seguinte comando:

openssl s_client -showcerts -connect DOMAIN:443 -servername SERVER_DOMAIN

Observação: substitua DOMÍNIO pelo nome do domínio de origem e SERVER_DOMAIN pelo nome do domínio de origem. Se a solicitação encaminhar o cabeçalho do host do visualizador para a origem, substitua SERVER_DOMAIN pelo valor do cabeçalho do host de entrada.

Para mais informações, consulte os Requisitos para usar certificados SSL/TLS com o CloudFront.

O CloudFront não oferece suporte ao conjunto de cifra da origem

As transações SSL/TLS entre o CloudFront e a origem falham quando não há um pacote comum de cifras negociadas. Para resolver esse problema, você deve usar protocolos e cifras compatíveis.

Use uma ferramenta de teste de servidor SSL para verificar se a lista de cifras suportadas inclui o conjunto de cifras da sua origem. Por exemplo, é possível usar o Teste de servidor SSL no site da Qualys.

Existem problemas de origem upstream

É possível usar um nome de host proxy da Rede de entrega de conteúdo (CDN) ou um balanceador de carga conectado à origem como uma origem personalizada na distribuição do CloudFront. Se um desses serviços intermediários não conseguir se conectar à origem, você receberá uma mensagem de erro 502. Para resolver esse problema, trabalhe com seu provedor de serviços de origem.

Se você usa um Application Load Balancer como sua origem, consulte Como soluciono os erros HTTP 502 do Application Load Balancer?

Se você usa o Amazon API Gateway, consulte Como faço para resolver erros HTTP 502 das APIs REST do API Gateway com integração de proxy do Lambda?

A função Lambda@Edge associada à distribuição do CloudFront falhou na validação

Se a função Lambda@Edge retornar uma resposta ao CloudFront que não seja válida, o CloudFront retorna uma mensagem de erro 502. Para resolver esse problema, verifique sua função Lambda@Edge para ver os seguintes problemas:

  • O objeto JSON é retornado.
  • Os campos obrigatórios estão ausentes.
  • Os objetos na resposta não são válidos.
  • A capacidade de adicionar ou atualizar não é permitida.
  • Os cabeçalhos são somente para leitura.
  • Você excedeu o tamanho máximo do corpo.
  • Caracteres ou valores não são válidos.

Para resolver esses problemas, consulte Testar e depurar as funções do Lambda@Edge. Além disso, consulte Como solucionar problemas de erros 500, 502 e 503 causados pelas funções do Lambda@Edge no CloudFront?

AWS OFICIALAtualizada há 8 meses