Pourquoi le mauvais certificat a-t-il été renvoyé lors de l'appel du mon nom de domaine personnalisé API Gateway ?

Dernière mise à jour : 19/01/2023

J'ai essayé d'effectuer une demande d'API vers mon nom de domaine personnalisé Amazon API Gateway, mais le mauvais certificat a été renvoyé. Comment puis-je résoudre ce problème ?

Brève description

Il existe deux types de noms de domaine personnalisés que vous pouvez créer pour les API Gateway API : Régionaux ou (pour les API REST uniquement) optimisés pour les périphéries.

Pour les noms de domaine personnalisés régionaux, API Gateway crée un nom de domaine régional. Vous devez configurer un enregistrement DNS pour mapper le nom de domaine personnalisé au nom d'hôte, comme « d-exemple.execute-api ». <region>.amazonaws.com ».

Pour les noms de domaine personnalisés optimisés pour la périphérie, API Gateway crée une distribution Amazon CloudFront. Vous devez configurer un enregistrement DNS pour mapper le nom de domaine personnalisé au nom de distribution CloudFront, similaire à « distribution-id.cloudfront.net ».

Dans le scénario suivant, le certificat SSL *.exemple.com ou www.exemple.com a été chargé vers le nom de domaine personnalisé www.exemple.com. Une requête d'API envoyée à www.exemple.com renvoie une erreur similaire à la suivante :

Depuis un navigateur :

« Ce serveur n'a pas pu prouver qu'il s'agit bien du site www.exemple.com ; son certificat de sécurité provient de *.execute-api.us-east-1.amazonaws.com. Cela peut être dû à une mauvaise configuration ou à l'interception de votre connexion par un attaquant.»

À partir de la boucle :

« curl : (60) SSL : aucun autre nom de sujet de certificat ne correspond au nom d'hôte cible « www.exemple.com ». curl n'a pas pu vérifier la légitimité du serveur et n'a donc pas pu établir de connexion sécurisée avec celui-ci. Pour en savoir plus sur cette situation et comment y remédier, veuillez consulter la page Web mentionnée ci-dessus.»

Résolution

Assurez-vous que l'enregistrement CNAME ou A du nom de domaine personnalisé pointe vers le nom de domaine API Gateway et non vers l'URL de stage API Gateway.

1.    Exécutez la commande openssl suivante pour vérifier que le certificat SSL est renvoyé par le domaine personnalisé :

openssl s_client -connect www.example.com:443 -servername www.example.com

Exemple de sortie :

subject=/CN=*.execute-api.us-east-1.amazonaws.com

2.    Exécutez la commande dig suivante sur le domaine personnalisé :

dig www.example.com

La sortie de la commande dig comporte soit un enregistrement CNAME pointant vers l'URL d'étape d'API Gateway, soit un enregistrement A pointant vers l'adresse IP.

3.    Vérifiez l'enregistrement DNS du domaine www.exemple.com auprès de votre enregistrement de domaine pour déterminer où il pointe. Si votre domaine est enregistré auprès d'Amazon Route 53, consultez la section Vérification des réponses DNS depuis Route 53.

4.    Pour confirmer que les enregistrements DNS sont correctement mappés, ouvrez la console API Gateway. Dans le panneau de navigation, choisissez Custom domain names (Noms de domaine personnalisés), puis choisissez votre domaine personnalisé.

5.    Dans Détails du domaine, choisissez Configuration, puis vérifiez le nom de domaine API Gateway. Le nom de domaine personnalisé doit être mappé au nom de domaine API Gateway. Les noms de domaine personnalisés régionaux utilisent un préfixe similaire à « d-exemple.execute-api ». <region>.amazonaws.com ». Les noms de domaine personnalisés optimisés pour Edge utilisent un préfixe similaire à « distribution-id.cloudfront.net ».

6.    Si l'enregistrement CNAME pointe vers l'URL d'étape d'API Gateway au lieu du nom de domaine d'API Gateway, mettez à jour l'enregistrement CNAME. Modifiez l'enregistrement CNAME pour qu'il pointe vers le nom de domaine de votre API Gateway au lieu de l'URL d'étape. Si votre nom de domaine personnalisé est enregistré auprès d'un tiers, contactez votre serveur d’enregistrement de domaine. Si votre nom de domaine personnalisé est enregistré avec Route 53, alors consultez Modification des enregistrements.

7.    Si vous avez appelé l'API dans un point de terminaison Amazon Virtual Private Cloud (Amazon VPC), vérifiez le mappage de l'enregistrement CNAME ou A pour le nom de domaine personnalisé. Si le DNS privé est activé, la demande d'API renvoie une erreur 4xx. Étant donné que la demande d'API est acheminée par le point de terminaison d'un VPC et mappée à un enregistrement CNAME ou A, la demande échoue.