Como soluciono problemas com a conexão da minha distribuição do CloudFront com uma origem personalizada por HTTPS?

4 minuto de leitura
0

Eu configurei minha distribuição do Amazon CloudFront para me conectar a uma origem personalizada usando HTTPS. Agora, recebo o erro “O CloudFront não pôde se conectar à Origem” com o código de status HTTP 502 (Bad Gateway).

Resolução

Verifique se o nome de domínio de origem da distribuição do CloudFront corresponde ao nome de domínio do certificado

Verifique se o nome de domínio de origem especificado em sua distribuição do CloudFront corresponde ao nome de domínio em seu certificado SSL/TLS de origem. O nome de domínio de origem da distribuição pode corresponder a qualquer um dos seguintes:

  • O nome de domínio especificado como o Nome Comum (CN) do certificado
  • O nome de domínio especificado no Nome Alternativo do Assunto (SAN) do certificado

Se o nome de domínio de origem não corresponder a nenhum nome de domínio associado ao seu certificado, o CloudFront retornará o código de status HTTP 502 (Bad Gateway).

Verifique se há alguma autoridade de certificação intermediária ausente

Use um verificador SSL para testar se a cadeia de certificados de sua origem está disponível e não precisa de nenhuma autoridade de certificação intermediária.

Se você estiver usando o Elastic Load Balancing como sua origem personalizada e precisar atualizar a cadeia de certificados, faça o seguinte:

Faça o upload do certificado novamente com a cadeia de certificados correta.

-ou-

Use o AWS Certificate Manager (ACM) para solicitar um certificado público que proteja seu domínio. O ACM é totalmente integrado ao Elastic Load Balancing.

Teste a política de protocolo e as cifras compatíveis com sua origem

Para que o handshake de SSL seja bem-sucedido, sua origem deve suportar as cifras que o CloudFront usa.

Se sua política de protocolo de origem tiver o SSLv3 ativado, o CloudFront usará somente o SSLv3 para se comunicar com sua origem a partir da linha de comando ou do terminal do Windows.

**Observação:**O OpenSSL geralmente está disponível por padrão nos sistemas Linux e macOS. O OpenSSL para Windows está disponível no site do OpenSSL.

Para testar se sua origem é compatível com as cifras que o CloudFront usa, execute os seguintes comandos do OpenSSL.

Se sua política de protocolo de origem estiver definida como SSLv3, execute:

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

Se sua origem estiver usando TLS, teste sua origem para cada protocolo usando estes comandos:

Para TLS, execute:

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

Para o TLS 1.1, execute:

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

Para o TLS 1.2, execute:

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

**Observação:**Defina o valor de -servername como o nome de domínio de origem. Ou, se você estiver usando o CloudFront para encaminhar o cabeçalho Host, defina -servername como o CNAME da solicitação do CloudFront.

Se você se conectar com sucesso à origem, verá a saída dos comandos anteriores semelhante à seguinte. A saída confirma que sua conexão foi estabelecida com sucesso usando a versão SSL ou TLS e as cifras suportadas.

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

**Observação:**Para obter mais orientações sobre solução de problemas sobre erros 502, consulte Código de status HTTP 502 (Bad Gateway).


Informações relacionadas

Exigir HTTPS para comunicação entre o CloudFront e sua origem personalizada

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos