¿Cómo soluciono los problemas a la hora de conectar mi distribución de CloudFront a un origen personalizado a través de HTTPS?

4 minutos de lectura
0

He configurado mi distribución de Amazon CloudFront para conectarme a un origen personalizado mediante HTTPS. Ahora recibo el error «CloudFront no pudo conectarse a Origin» con el código de estado de HTTP 502 (puerta de enlace incorrecta).

Resolución

Compruebe que el nombre de dominio del origen de la distribución de CloudFront coincida con el nombre de dominio del certificado

Compruebe que el nombre de dominio del origen especificado en su distribución de CloudFront coincida con el nombre de dominio del certificado SSL/TLS de su origen. El nombre de dominio del origen de la distribución puede coincidir con una de las siguientes opciones:

  • El nombre de dominio especificado como nombre común (CN) del certificado
  • El nombre de dominio especificado en el nombre alternativo del sujeto (SAN) del certificado

Si el nombre de dominio de origen no coincide con ningún nombre de dominio asociado a su certificado, CloudFront devuelve el código de estado HTTP 502 (puerta de enlace incorrecta).

Compruebe si faltan entidades de certificación intermediarias

Utilice un verificador de SSL para comprobar si la cadena de certificados de su origen está disponible y no necesita ninguna entidad de certificación intermediaria.

Si utiliza Elastic Load Balancing como origen personalizado y debe actualizar la cadena de certificados, haga lo siguiente:

Vuelva a cargar el certificado con la cadena de certificados correcta.

-o-

Utilice AWS Certificate Manager (ACM) para solicitar un certificado público que proteja su dominio. ACM está completamente integrado con Elastic Load Balancing.

Pruebe la política de protocolo y los cifrados compatibles con su origen

Para que el protocolo de enlace SSL se realice correctamente, su origen debe admitir los cifrados que utiliza CloudFront.

Si la política de protocolo de su origen tiene activado SSLv3, CloudFront solo utilizará SSLv3 para comunicarse con su origen desde la línea de comandos o la terminal de Windows.

Nota: OpenSSL suele estar disponible de forma predeterminada en los sistemas Linux y macOS. OpenSSL para Windows está disponible en el sitio web de OpenSSL.

Para comprobar si su origen admite los cifrados que usa CloudFront, ejecute los siguientes comandos de OpenSSL.

Si la política de protocolo de su origen está configurada en SSLv3, ejecute:

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

Si su origen utiliza TLS, pruebe su origen con cada protocolo mediante estos comandos:

Para TLS, ejecute:

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 TLS 1.1, ejecute:

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 TLS 1.2, ejecute:

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

Nota: Configure el valor de -servername con el nombre de dominio del origen. Si utiliza CloudFront para reenviar el Encabezado del host, también puede configurar -servername con el CNAME de la solicitud de CloudFront.

Si se conecta correctamente al origen, verá un resultado de los comandos anteriores similar al siguiente. El resultado confirma que la conexión se ha establecido correctamente mediante la versión SSL o TLS y los cifrados compatibles.

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

Nota: Para obtener más información sobre la resolución de problemas relacionados con los errores 502, consulte Código de estado HTTP 502 (puerta de enlace incorrecta).


Información relacionada

Solicitar HTTPS para la comunicación entre CloudFront y su origen personalizado

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años