Saltar al contenido

¿Cómo soluciono el error 502 «The request could not be satisfied» en CloudFront?

6 minutos de lectura
0

He configurado una distribución de Amazon CloudFront con un dominio personalizado. Quiero solucionar el error 502 «The request could not be satisfied» que recibo cuando uso CloudFront para solicitar el dominio de nombre canónico (CNAME) alternativo.

Resolución

CloudFront no puede resolver la dirección IP de origen

Si CloudFront no puede resolver el dominio de origen, devuelve el error «The request could not be satisfied». A menos que la distribución utilice únicamente Amazon Virtual Private Cloud (Amazon VPC) Origins, CloudFront debe poder resolver el dominio de origen mediante consultas de DNS públicas.

No es necesario que el origen sea de acceso público, pero debes poder consultar públicamente su dominio. Para solucionar este problema, utiliza un comando dig o nslookup para determinar si el dominio de origen se resuelve en una dirección IP.

Si usas Linux, ejecuta el siguiente comando:

dig ORIGIN_DOMAIN_NAME

Si usas Windows, ejecuta el siguiente comando:

nslookup ORIGIN_DOMAIN_NAME

Nota: Sustituye ORIGIN_DOMAIN_NAME por el nombre de dominio del origen.

Los comandos devuelven la dirección IP del nombre de dominio de origen. Usa una herramienta de verificación de DNS para comprobar la resolución del DNS en diferentes regiones geográficas. Por ejemplo, puedes usar la herramienta Check DNS propagation en el sitio web de DNS Checker. Comprueba si los métodos de verificación no pueden consultar el dominio del origen. A continuación, ponte en contacto con tu proveedor de DNS público para confirmar que exista un registro de DNS que se puede resolver públicamente para el dominio de origen.

Para obtener más información sobre la solución de problemas relacionados con el DNS, consulta ¿Cómo funciona el DNS y cómo puedo solucionar los errores de DNS parciales o intermitentes?

El certificado SSL/TLS no coincide con el nombre de dominio

El certificado SSL/TLS en el origen debe incluir uno de los siguientes nombres de dominio:

  • El nombre de dominio del origen del campo Common Name (Nombre común) o del campo Subject Alternative Names (Nombres de sujeto alternativos) del certificado.
  • El nombre de dominio del encabezado del host para los encabezados del host del visor entrante que la solicitud reenvía al origen en la distribución de CloudFront.

Para comprobar los campos Common Name (Nombre común) y Subject Alternative Names (Nombres de sujeto alternativos) en el certificado, ejecuta el siguiente comando:

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

Nota: Sustituye DOMAIN por el nombre de dominio del origen y SERVER_DOMAIN por el nombre de dominio del origen. Si la solicitud reenvía el encabezado del host del visor al origen, sustituye SERVER_DOMAIN por el valor del encabezado del host entrante.

Debes configurar la política de caché o la política de solicitud del origen para incluir el encabezado del host en los siguientes escenarios:

  • El certificado de origen incluye el valor del encabezado del host del visor como nombre común del certificado SSL/TLS o como nombre de sujeto alternativo (SAN).
  • La solicitud no reenvía el encabezado del host al origen.

El certificado de origen ha caducado, no es de confianza, está autofirmado o la cadena de certificados está en el orden incorrecto

Una autoridad de certificación (CA) de confianza debe firmar el certificado que has instalado en el origen personalizado. Para obtener una lista de las CA de confianza, consulta Certificate authorities (Autoridades de certificación) en el sitio web de Mozilla. CloudFront no admite orígenes que usen certificados SSL/TLS autofirmados.

Para comprobar si tu certificado de origen ha caducado, ejecuta el siguiente comando de OpenSSL:

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

Nota: Sustituye DOMAIN por el nombre de dominio del origen y SERVER_DOMAIN por el nombre de dominio del origen. Si la solicitud reenvía el encabezado del host del visor al origen, sustituye SERVER_DOMAIN por el valor del encabezado del host entrante.

En el resultado del comando, busca los parámetros Not Before (Después de) y Not After (Antes de). Confirma que la fecha y la hora actuales se encuentran dentro del periodo de validez del certificado.

La falta de certificados de CA intermedios o el orden incorrecto de los certificados intermedios provocan un error en la comunicación entre HTTPS y el origen.

Para comprobar la cadena de certificados, ejecuta el siguiente comando:

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

Nota: Sustituye DOMAIN por el nombre de dominio del origen y SERVER_DOMAIN por el nombre de dominio del origen. Si la solicitud reenvía el encabezado del host del visor al origen, sustituye SERVER_DOMAIN por el valor del encabezado del host entrante.

Para obtener más información, consulta Requisitos para la utilización de certificados SSL/TLS con CloudFront.

CloudFront no admite el conjunto de cifrados del origen

Se produce un error en las transacciones SSL/TLS entre CloudFront y el origen cuando no hay un conjunto de cifrados negociados común. Para resolver este problema, debes usar protocolos y cifrados compatibles.

Usa una herramienta de prueba de servidor SSL para comprobar si la lista de cifrados compatibles incluye el conjunto de cifrado de tu origen. Por ejemplo, puedes utilizar la prueba de servidor SSL en el sitio web de Qualys.

Hay problemas de origen en las fases anteriores

Puedes usar un equilibrador de carga o un nombre de host de la red de entrega de contenido (CDN) que esté conectado al origen como origen personalizado en la distribución de CloudFront. Si uno de estos servicios intermediarios no se puede conectar al origen, recibirás un error 502. Para resolver este problema, ponte en contacto con el proveedor de servicios del origen.

Si utilizas un equilibrador de carga de aplicación como origen, consulta ¿Cómo puedo solucionar los errores HTTP 502 del equilibrador de carga de aplicación?

Si usas Amazon API Gateway, consulta ¿Cómo puedo solucionar los errores HTTP 502 de las API de REST de API Gateway con la integración de proxy de Lambda?

La función de Lambda@Edge asociada a la distribución de CloudFront no pudo validarse

Si la función de Lambda@Edge devuelve una respuesta a CloudFront que no es válida, CloudFront devuelve un error 502. Para resolver este problema, comprueba si la función de Lambda@Edge presenta los siguientes problemas:

  • Se devuelve el objeto JSON.
  • Faltan los campos obligatorios.
  • Los objetos de la respuesta no son válidos.
  • La posibilidad de añadir o actualizar no está permitida.
  • Los encabezados son de solo lectura.
  • Has superado el tamaño máximo del cuerpo.
  • Los caracteres o valores no son válidos.

Para resolver estos problemas, consulta Prueba y depuración de funciones de Lambda@Edge. Consulta también ¿Cómo se solucionan los errores 500, 502 y 503 que provocan las funciones de Lambda@Edge en CloudFront?

OFICIAL DE AWSActualizada hace 5 meses