Comment puis-je utiliser un certificat client émis par un tiers lors de la configuration de l'authentification mutuelle TLS pour les passerelles API ?

Lecture de 5 minute(s)
0

Je souhaite utiliser un certificat client émis par un tiers lors de la configuration de l'authentification mutuelle TLS (Transport Layer Security) pour API d'Amazon de passerelle API.

Résolution

Pour utiliser un certificat client signé par une tierce partie pour la passerelle API avec l'authentification TLS, suivez ces étapes :

  1. Créez un magasin de confiance pour utiliser le certificat signé par un tiers.
  2. Créez un nom de domaine personnalisé et un mappage API pour votre passerelle API.
  3. Créez un enregistrement DNS pour faire correspondre le nom de domaine personnalisé à la passerelle API.
  4. Désactivez le point de terminaison par défaut.
  5. Testez l'API.

Remarque :

Créez un magasin de confiance pour utiliser le certificat signé par un tiers

1.    Générez un RootCA. Le RootCA est utilisé pour émettre le certificat client.

openssl genrsa -out RootCA.key 4096  

openssl req -new -x509 -days 3650 -key RootCA.key -out RootCA.pem

2.    Remplissez les champs obligatoires et entrez le nom de domaine.

3.    Créez une clé privée de certificat client, une demande de signature de certificat (CSR) et un certificat client.

openssl genrsa -out my_client.key 2048  

openssl req -new -key my_client.key -out my_client.csr

4.    Signez le certificat client à l'aide de l'autorité de certification que vous avez créée précédemment.

openssl x509 -req -in my_client.csr -CA RootCA.pem -CAkey RootCA.key -set_serial 01 -out my_client.pem -days 3650 -sha256

5.    Créez un compartiment Amazon Simple Storage Service (Amazon S3) pour stocker le fichier truststore.pem.

6.    Chargez le fichier Rootca.pem dans le trust store du compartiment Amazon S3.

7.    (Facultatif) Créez un fichier de chaîne de certificats à partir du certificat d'autorité de certification intermédiaire vers l'autorité de certification racine.

Cat Intermediate.pem ca.pem >ca-chain.pem.

Pour plus d'informations, consultez la section Configuration de votre Truststore.

Créez un nom de domaine personnalisé et un mappage API pour votre API passerelle API

**Remarque :**Seuls les certificats dont la taille de clé est de 2048 bits sont visibles avec la passerelle API. La taille du certificat ne peut pas dépasser 2048 bits.

1.    Ouvrez la console Passerelle API, puis choisissez Noms de domaine personnalisés.

2.    Pour les noms de domaine, entrez votre nom de domaine, puis choisissez Créer.

3.    Dans le champ Nom de domaine, entrez votre nom de domaine.

4.    Pour la version TLS minimale, choisissez TLS 1.2.

5.    Activez l'authentification TLS mutuelle.

6.    Pour l'URI Truststore, entrez l'URI Amazon S3 que vous avez créé précédemment.

7.    Pour la configuration des points de terminaison, choisissez Regional.

8.    Dans Type de certificat, choisissez votre type de certificat, puis choisissezCréer un nom de domaine.

9.    Choisissez votre nom de domaine personnalisé, puis choisissez Configurer les mappages d'API.

10.    Choisissez Ajouter un nouveau mappage.

11.    Choisissez l'API, l'étape et lechemin du mappage, puis choisissez Enregistrer.

Pour plus d'informations, consultez l'article Comment configurer un nom de domaine personnalisé pour mon API passerelle API ?

Créer un enregistrement DNS pour faire correspondre le nom de domaine personnalisé à la passerelle API

Créez un enregistrement DNS pour faire pointer le nom de domaine personnalisé vers le nom de domaine régional de la passerelle API. Cela permet au trafic lié au nom de domaine personnalisé d'être acheminé vers le nom d'hôte régional de l'API. L'enregistrement DNS peut être de type CNAME ou "A Alias".

Pour plus d'informations, consultez la section Configuration de Route 53 pour acheminer le trafic vers un point de terminaison de la passerelle API.

Désactiver le point de terminaison par défaut

Par défaut, les clients peuvent appeler des API à l'aide du point de terminaison execute-api généré par la passerelle API pour votre API. Désactivez le point de terminaison execute-api par défaut afin que les clients puissent accéder à votre API en utilisant uniquement un nom de domaine personnalisé.

Pour les API HTTP, consultez la section Désactivation du point de terminaison par défaut pour une API HTTP.

Pour les API REST, consultez la section Désactivation du point de terminaison par défaut pour une API REST.

Testez l'API

Testez l'API avec les paramètres --key et --cert pour envoyer le certificat client dans le cadre de la demande.

$ curl -v https://{YourCustomDomainName}/{resource} --key my_client.key --cert my_client.pem

Remarque : La clé privéemy_client.key et le certificat client my_client.pem doivent être inclus pour que la demande soit réussie.

Informations connexes

Comment puis-je résoudre les problèmes de chaîne de certificats et de certificats auto-signés pour la passerelle API d'Amazon avec des domaines personnalisés et TLS mutuel activé ?

Introduction de l'authentification mutuelle TLS pour la passerelle API d'Amazon

Comment dépanner les erreurs HTTP 403 Forbidden à partir d'un nom de domaine personnalisé de passerelle API qui nécessite TLS mutuel ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an