¿Por qué se ha devuelto un certificado incorrecto al invocar mi nombre de dominio personalizado de API Gateway?
Intenté realizar una solicitud de API a mi nombre de dominio personalizado de Amazon API Gateway, pero me devolvieron un certificado incorrecto. ¿Cómo soluciono este problema?
Descripción corta
Hay dos tipos de nombres de dominio personalizados que puede crear para las API de API Gateway: regionales u optimizados para la periferia (solo para las API de REST).
Para los nombres de dominio personalizados regionales, API Gateway crea un nombre de dominio regional. Debe configurar un registro DNS para asignar el nombre de dominio personalizado al nombre de host de forma similar a “d-example.execute-api.<region>.amazonaws.com”.
Para los nombres de dominio personalizados optimizados para la periferia, API Gateway crea una distribución de Amazon CloudFront. Debe configurar un registro DNS para asignar el nombre de dominio personalizado al nombre de distribución de CloudFront, similar a “distribution-id.cloudfront.net”.
En el siguiente caso, el certificado SSL *.example.com o www.example.com se cargó en el nombre de dominio personalizado www.example.com. Una solicitud de API a www.example.com devuelve un error similar al siguiente:
Desde un navegador:
“Este servidor no pudo probar que es www.example.com; su certificado de seguridad proviene de *.execute-api.us-east-1.amazonaws.com. Esto puede deberse a una configuración incorrecta o a que un atacante intercepte su conexión”.
De curl:
“curl: (60) SSL: ningún nombre de asunto de certificado alternativo coincide con el nombre de host de destino 'www.example.com'. curl no pudo verificar la legitimidad del servidor y, por lo tanto, no pudo establecer una conexión segura con él. Para obtener más información sobre esta situación y cómo solucionarla, visite la página web mencionada anteriormente”.
Resolución
Asegúrese de que el registro CNAME o A del nombre de dominio personalizado apunte al nombre de dominio de API Gateway y no a la URL de la etapa de API Gateway.
1. Ejecute el siguiente comando openssl para verificar que el dominio personalizado devuelva el certificado SSL:
openssl s_client -connect www.example.com:443 -servername www.example.com
Resultado de ejemplo:
subject=/CN=*.execute-api.us-east-1.amazonaws.com
2. Ejecute el siguiente comando dig en el dominio personalizado:
dig www.example.com
El resultado del comando dig tiene un registro CNAME que apunta a la URL de la etapa de API Gateway o un registro A que apunta a la dirección IP.
3. Compruebe el registro DNS del dominio www.example.com con el registrador de dominios para determinar a dónde apunta. Si su dominio está registrado en Amazon Route 53, consulte Comprobar las respuestas de DNS de Route 53.
4. Para confirmar que los registros DNS están asignados correctamente, abra la consola de API Gateway. En el panel de navegación, elija Custom domain names (Nombres de dominio personalizados) y, a continuación, elija su dominio personalizado.
5. En Domain details (Detalles del dominio), elija Configuration (Configuración) y, a continuación, compruebe el nombre de dominio de API Gateway. El nombre de dominio personalizado debe estar asignado al nombre de dominio de API Gateway. Los nombres de dominio personalizados regionales utilizan un prefijo similar a “d-example.execute-api.<region>.amazonaws.com”. Los nombres de dominio personalizados optimizados para la periferia utilizan un prefijo similar a “distribution-id.cloudfront.net”.
6. Si el registro CNAME apunta a la URL de la etapa de API Gateway en lugar del nombre de dominio de API Gateway, actualice el registro CNAME. Cambie el registro CNAME para que apunte al nombre de dominio de API Gateway en lugar de a la URL de la etapa. Si su nombre de dominio personalizado está registrado con un tercero, póngase en contacto con su registrador de dominios. Si su nombre de dominio personalizado está registrado en Route 53, consulte Edición de registros.
7. Si ha invocado la API dentro de un punto de conexión de Amazon Virtual Private Cloud (Amazon VPC), compruebe la asignación del registro CNAME o A para el nombre de dominio personalizado. Si el DNS privado está activado, la solicitud de API devuelve un error 4xx. Dado que la solicitud de API pasa por el punto de conexión de VPC y se asigna a un registro CNAME o A, la solicitud falla.
Información relacionada
¿Cómo puedo configurar un nombre de dominio personalizado para mi API de API Gateway?
Contenido relevante
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 2 años