Comment puis-je résoudre les erreurs de certificat expiré ou de « certificat non valide » lorsque j'appelle une API API Gateway à l'aide d'un nom de domaine personnalisé ?

Dernière mise à jour : 23/09/2022

J'ai configuré un nom de domaine personnalisé pour mon API API Gateway. J'ai reçu un message d'erreur indiquant que le certificat AWS Certificate Manager (ACM) a expiré ou est un « certificat non valide ». Comment puis-je résoudre cette erreur ?

Brève description

L'erreur « Le certificat a expiré » se produit lorsque le certificat utilisé pour créer le nom de domaine personnalisé est expiré.

L'erreur « certificat non valide » se produit en raison d'un nom commun (CN) ou d'un nom de sujet ne correspondant pas dans le certificat.

Solution

Certificats ACM expirés

Si votre certificat a expiré, il se peut que vous receviez un message d'erreur similaire au suivant :

« Erreur SSL (SSLCertVerificationError (1), '[SSL : CERTIFICATE_VERIFY_FAILED] »
Pour vérifier l'expiration du certificat, exécutez la commande OpenSSL s_client de la manière suivante :

openssl s_client -servername <custom domain name> -connect <custom domain name>:443 2>/dev/null | openssl x509 -noout -dates

Pour renouveler le certificat, voir Renouvellement géré pour les certificats ACM.

Pour éviter les certificats expirés, voirComment surveiller les expirations des certificats importés dans ACM.

Certificats ACM incompatibles

Si le CN ou le nom de sujet de votre certificat ne correspondent pas, vous pouvez recevoir un message d'erreur similaire au suivant :

« ERR_CERT_COMMON_NAME_INVALID »

Vérifiez les paramètres suivants :

  • Le certificat utilisé pour créer le nom de domaine personnalisé existe dans ACM.
  • Le nom d'objet du certificat ou CN comprend le nom de domaine personnalisé. Par exemple, si le nom de domaine personnalisé est custom.example.com, le nom d'objet ou le CN doit inclure custom.example.com ou *example.com.
  • Assurez-vous qu'il existe un enregistrement DNS pointant vers le nom de domaine personnalisé de l'API Gateway. L'enregistrement DNS peut être de type CNAME ou A.

Remarque : Les noms de domaine personnalisés ne peuvent pas pointer directement vers le point de terminaison execute-api car le domaine personnalisé du certificat n'est pas répertorié en tant que Subject Alternative Name (SAN).

Exemple de configuration :

custom.example.com -> CNAME record -> d-yg54udirl4.execute-api.us-east-1.amazonaws.com

Vous pouvez vérifier votre configuration en exécutant la commande dig sur votre domaine personnalisé, comme suit :

$ dig custom.example.com