Authentification mutuelle avec TLS dans Application Load Balancer - Elastic Load Balancing

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Authentification mutuelle avec TLS dans Application Load Balancer

L'authentification TLS mutuelle est une variante de la sécurité de la couche de transport (TLS). Le protocole TLS traditionnel établit des communications sécurisées entre un serveur et un client, le serveur devant fournir son identité à ses clients. Avec le protocole TLS mutuel, un équilibreur de charge négocie l'authentification mutuelle entre le client et le serveur tout en négociant le protocole TLS. Lorsque vous utilisez le protocole TLS mutuel avec Application Load Balancer, vous simplifiez la gestion de l'authentification et réduisez la charge de vos applications.

En utilisant le protocole TLS mutuel avec Application Load Balancer, votre équilibreur de charge peut gérer l'authentification des clients afin de garantir que seuls les clients de confiance communiquent avec vos applications principales. Lorsque vous utilisez cette fonctionnalité, Application Load Balancer authentifie les clients à l'aide de certificats délivrés par une autorité de certification (CA) tierce ou en utilisant le AWS Private Certificate Authority (PCA), éventuellement, avec des contrôles de révocation. Application Load Balancer transmet les informations du certificat client au backend, que vos applications peuvent utiliser à des fins d'autorisation. En utilisant le protocole TLS mutuel dans Application Load Balancer, vous pouvez obtenir une authentification intégrée, évolutive et gérée pour les entités basées sur des certificats, qui utilise des bibliothèques établies.

Le protocole TLS mutuel pour les équilibreurs de charge d'application propose les deux options suivantes pour valider vos certificats clients X.509v3 :

Remarque : Les certificats client X.509v1 ne sont pas pris en charge.

  • Transfert TLS mutuel : lorsque vous utilisez le mode relais TLS mutuel, Application Load Balancer envoie l'ensemble de la chaîne de certificats client à la cible à l'aide d'en-têtes HTTP. Ensuite, en utilisant la chaîne de certificats client, vous pouvez implémenter la logique d'authentification et d'autorisation correspondante dans votre application.

  • Vérification TLS mutuelle : lorsque vous utilisez le mode de vérification TLS mutuelle, Application Load Balancer effectue l'authentification des certificats clients X.509 pour les clients lorsqu'un équilibreur de charge négocie des connexions TLS.

Pour commencer à utiliser le protocole TLS mutuel dans Application Load Balancer à l'aide du relais, il vous suffit de configurer l'écouteur pour qu'il accepte les certificats des clients. Pour utiliser le protocole TLS mutuel avec vérification, vous devez effectuer les opérations suivantes :

  • Créez une nouvelle ressource Trust Store.

  • Téléchargez votre bundle d'autorités de certification (CA) et, éventuellement, vos listes de révocation.

  • Attachez le trust store à l'écouteur configuré pour vérifier les certificats clients.

Pour les step-by-step procédures permettant de configurer le mode de vérification TLS mutuelle avec votre Application Load Balancer, consultez. Configuration du protocole TLS mutuel sur un Application Load Balancer

Avant de commencer à configurer le protocole TLS mutuel sur votre Application Load Balancer

Avant de commencer à configurer le protocole TLS mutuel sur votre Application Load Balancer, tenez compte des points suivants :

Quotas

Les équilibreurs de charge des applications incluent certaines limites liées au nombre de magasins de confiance, de certificats CA et de listes de révocation de certificats utilisés dans votre AWS compte.

Pour plus d'informations, consultez la section Quotas pour vos équilibreurs de charge d'application.

Exigences relatives aux certificats

Les équilibreurs de charge d'application prennent en charge les éléments suivants pour les certificats utilisés avec l'authentification TLS mutuelle :

  • Certificat pris en charge : X.509v3

  • Clés publiques prises en charge : RSA 2K — 8K ou ECDSA secp256r1, secp384r1, secp521r1

  • Algorithmes de signature pris en charge : SHA256, 384, 512 avec RSA/SHA256, 384, 512 avec hachage EC/SHA256, 384 512 avec RSASSA-PSS avec MGF1

Packs de certificats CA

Les règles suivantes s'appliquent aux ensembles d'autorités de certification (CA) :

  • Les équilibreurs de charge d'application téléchargent chaque ensemble de certificats d'autorité de certification (CA) sous forme de lot. Les équilibreurs de charge d'application ne prennent pas en charge le téléchargement de certificats individuels. Si vous devez ajouter de nouveaux certificats, vous devez télécharger le fichier du bundle de certificats.

  • Pour remplacer un ensemble de certificats CA, utilisez l'ModifyTrustStoreAPI.

Commande de certificats pour transmission

Lorsque vous utilisez le transfert TLS mutuel, l'Application Load Balancer insère des en-têtes pour présenter la chaîne de certificats du client aux cibles principales. L'ordre de présentation commence par les certificats feuilles et se termine par le certificat racine.

Reprise de session

La reprise de session n'est pas prise en charge lors de l'utilisation des modes de transfert TLS mutuel ou de vérification avec un Application Load Balancer.

En-têtes HTTP

Les équilibreurs de charge d'application utilisent X-Amzn-Mtls des en-têtes pour envoyer des informations de certificat lorsqu'ils négocient des connexions client à l'aide du protocole TLS mutuel. Pour plus d'informations et des exemples d'en-têtes, consultezEn-têtes HTTP et TLS mutuel.

Fichiers de certificats CA

Les fichiers de certificats CA doivent satisfaire aux exigences suivantes :

  • Le fichier de certificat doit utiliser le format PEM (Privacy Enhanced Mail).

  • Le contenu du certificat doit être inclus dans les -----END CERTIFICATE----- limites -----BEGIN CERTIFICATE----- et.

  • Les commentaires doivent être précédés d'un # caractère et ne doivent contenir aucun - caractère.

  • Il ne peut y avoir aucune ligne vide.

Exemple de certificat non accepté (non valide) :

# comments Certificate: Data: Version: 3 (0x2) Serial Number: 01 Signature Algorithm: ecdsa-with-SHA384 Issuer: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Validity Not Before: Jan 11 23:57:57 2024 GMT Not After : Jan 10 00:57:57 2029 GMT Subject: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Subject Public Key Info: Public Key Algorithm: id-ecPublicKey Public-Key: (384 bit) pub: 00:01:02:03:04:05:06:07:08 ASN1 OID: secp384r1 NIST CURVE: P-384 X509v3 extensions: X509v3 Key Usage: critical Digital Signature, Key Encipherment, Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: 00:01:02:03:04:05:06:07:08 X509v3 Subject Alternative Name: URI:EXAMPLE.COM Signature Algorithm: ecdsa-with-SHA384 00:01:02:03:04:05:06:07:08 -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

Exemples de certificats acceptés (valides) :

  1. Certificat unique (codé PEM) :

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----
  2. Certificats multiples (codés PEM) :

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

En-têtes HTTP et TLS mutuel

Cette section décrit les en-têtes HTTP utilisés par les équilibreurs de charge d'application pour envoyer des informations de certificat lors de la négociation de connexions avec des clients à l'aide du protocole TLS mutuel. X-Amzn-MtlsLes en-têtes spécifiques utilisés par l'Application Load Balancer dépendent du mode TLS mutuel que vous avez spécifié : mode passthrough ou mode verify.

Pour plus d'informations sur les autres en-têtes HTTP pris en charge par les équilibreurs de charge d'application, consultez. En-têtes HTTP et Application Load Balancers

En-tête HTTP pour le mode passthrough

Pour le protocole TLS mutuel en mode relais, les équilibreurs de charge d'application utilisent l'en-tête suivant.

Cet en-tête contient le format PEM codé en URL de l'ensemble de la chaîne de certificats client présentée dans la connexion, avec des caractères sécurisés+=/.

Exemple de contenu d'en-tête :

X-Amzn-Mtls-Clientcert: -----BEGIN%20CERTIFICATE-----%0AMIID<...reduced...>do0g%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIID1<...reduced...>3eZlyKA%3D%3D%0A-----END%20CERTIFICATE-----%0A

En-têtes HTTP pour le mode de vérification

Pour le protocole TLS mutuel en mode vérification, les équilibreurs de charge d'application utilisent les en-têtes suivants.

Cet en-tête contient une représentation hexadécimale du numéro de série du certificat Leaf.

Exemple de contenu d'en-tête :

X-Amzn-Mtls-Clientcert-Serial-Number: 03A5B1

Cet en-tête contient une chaîne RFC2253 représentant le nom distinctif (DN) de l'émetteur.

Exemple de contenu d'en-tête :

X-Amzn-Mtls-Clientcert-Issuer: CN=rootcamtls.com,OU=rootCA,O=mTLS,L=Seattle,ST=Washington,C=US

Cet en-tête contient une chaîne RFC2253 représentant le nom distinctif (DN) du sujet.

Exemple de contenu d'en-tête :

X-Amzn-Mtls-Clientcert-Subject: CN=client_.com,OU=client-3,O=mTLS,ST=Washington,C=US

Cet en-tête contient un format ISO8601 pour la date notBefore etnotAfter.

Exemple de contenu d'en-tête :

X-Amzn-Mtls-Clientcert-Validity: NotBefore=2023-09-21T01:50:17Z;NotAfter=2024-09-20T01:50:17Z

Cet en-tête contient un format PEM codé en URL du certificat feuille, avec +=/ des caractères sûrs.

Exemple de contenu d'en-tête :

X-Amzn-Mtls-Clientcert-Leaf: -----BEGIN%20CERTIFICATE-----%0AMIIG<...reduced...>NmrUlw%0A-----END%20CERTIFICATE-----%0A

Configuration du protocole TLS mutuel sur un Application Load Balancer

Cette section inclut les procédures de configuration du mode de vérification TLS mutuel pour l'authentification sur les équilibreurs de charge d'application.

Pour utiliser le mode relais TLS mutuel, il suffit de configurer l'écouteur pour qu'il accepte les certificats des clients. Lorsque vous utilisez le transfert TLS mutuel, l'Application Load Balancer envoie l'ensemble de la chaîne de certificats client à la cible à l'aide d'en-têtes HTTP, ce qui vous permet d'implémenter la logique d'authentification et d'autorisation correspondante dans votre application. Pour plus d'informations, consultez Créer un écouteur HTTPS pour votre Application Load Balancer.

Lorsque vous utilisez le protocole TLS mutuel en mode vérification, l'Application Load Balancer effectue l'authentification par certificat client X.509 pour les clients lorsqu'un équilibreur de charge négocie des connexions TLS.

Pour utiliser le mode de vérification TLS mutuelle, effectuez les opérations suivantes :

  • Créez une nouvelle ressource Trust Store.

  • Téléchargez votre bundle d'autorités de certification (CA) et, éventuellement, vos listes de révocation.

  • Attachez le trust store à l'écouteur configuré pour vérifier les certificats clients.

Suivez les procédures décrites dans cette section pour configurer le mode de vérification TLS mutuel sur votre Application Load Balancer dans le. AWS Management Console Pour configurer le protocole TLS mutuel en utilisant des opérations d'API plutôt que la console, consultez le guide de référence de l'API Application Load Balancer.

Créez un trust store

Vous pouvez créer un trust store de trois manières : lorsque vous créez un Application Load Balancer, lorsque vous créez un écouteur sécurisé et en utilisant la console Trust Store. Lorsque vous ajoutez un trust store lorsque vous créez un équilibreur de charge ou un écouteur, le trust store est automatiquement associé au nouvel écouteur. Lorsque vous créez un trust store à l'aide de la console Trust Store, vous devez l'associer vous-même à un écouteur.

Cette section décrit la création d'un trust store à l'aide de la console Trust Store, mais les étapes utilisées lors de la création d'un Application Load Balancer ou d'un écouteur sont les mêmes. Pour plus d'informations, consultez Configurer un équilibreur de charge et un écouteur et Ajouter un écouteur HTTPS.

Prérequis :
  • Pour créer un trust store, vous devez disposer d'un bundle de certificats auprès de votre autorité de certification (CA).

Pour créer un trust store à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Trust Stores.

  3. Sélectionnez Créer un magasin de confiance.

  4. Configuration du Trust Store

    1. Dans le champ Trust store name, saisissez le nom de votre trust store.

    2. Pour le bundle d'autorités de certification, entrez le chemin Amazon S3 vers le bundle de certificats ca que vous souhaitez que votre magasin de confiance utilise.

      Facultatif : utilisez la version de l'objet pour sélectionner une version précédente du bundle de certificats ca. Dans le cas contraire, c'est la version actuelle qui est utilisée.

  5. Pour les révocations, vous pouvez éventuellement ajouter une liste de révocation de certificats à votre trust store.

    1. Sous Liste de révocation de certificats, entrez le chemin Amazon S3 vers la liste de révocation de certificats que vous souhaitez que votre magasin de confiance utilise.

      Facultatif : utilisez la version de l'objet pour sélectionner une version précédente de la liste de révocation des certificats. Dans le cas contraire, c'est la version actuelle qui est utilisée.

  6. Pour les tags Trust Store, vous pouvez éventuellement saisir jusqu'à 50 tags à appliquer à votre Trust Store.

  7. Sélectionnez Créer un magasin de confiance.

Associer un magasin de confiance

Après avoir créé un trust store, vous devez l'associer à un écouteur avant que votre Application Load Balancer puisse commencer à utiliser le trust store. Vous ne pouvez avoir qu'un seul magasin de confiance associé à chacun de vos écouteurs sécurisés, mais un seul magasin de confiance peut être associé à plusieurs écouteurs.

Cette section traite de l'association d'un trust store à un écouteur existant. Vous pouvez également associer un trust store lors de la création d'un Application Load Balancer ou d'un écouteur. Pour plus d'informations, consultez Configurer un équilibreur de charge et un écouteur et Ajouter un écouteur HTTPS.

Pour associer un trust store à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Load Balancers (Équilibreurs de charge).

  3. Sélectionnez l'équilibreur de charge pour afficher sa page de détails.

  4. Dans l'onglet Écouteurs et règles, cliquez sur le lien dans la colonne Protocol:Port pour ouvrir la page de détails de l'écouteur sécurisé.

  5. Dans l'onglet Sécurité, choisissez Modifier les paramètres de l'écouteur sécurisé.

  6. (Facultatif) Si le protocole TLS mutuel n'est pas activé, sélectionnez Authentification mutuelle (MTLS) sous Gestion des certificats clients, puis choisissez Vérifier avec un magasin de confiance.

  7. Sous Trust store, sélectionnez le trust store que vous avez créé.

  8. Sélectionnez Enregistrer les modifications.

Afficher les détails de Trust Store

Packs de certificats CA

Le bundle de certificats CA est un composant obligatoire du trust store. Il s'agit d'un ensemble de certificats racine et intermédiaires fiables qui ont été validés par une autorité de certification. Ces certificats validés garantissent que le client peut être sûr que le certificat présenté appartient à l'équilibreur de charge.

Vous pouvez consulter le contenu du bundle de certificats CA actuel dans votre trust store à tout moment.

Afficher un ensemble de certificats CA
Pour consulter un ensemble de certificats CA à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Trust Stores.

  3. Sélectionnez le trust store pour afficher la page de détails.

  4. Choisissez Actions, puis Get CA bundle.

  5. Choisissez Partager le lien ou Télécharger.

Listes de révocation de certificats

Vous pouvez éventuellement créer une liste de révocation de certificats pour un trust store. Les listes de révocation sont publiées par les autorités de certification et contiennent les données relatives aux certificats qui ont été révoqués. Les équilibreurs de charge d'application ne prennent en charge que les listes de révocation de certificats au format PEM.

Lorsqu'une liste de révocation de certificats est ajoutée à un trust store, un ID de révocation lui est attribué. Les identifiants de révocation augmentent à chaque liste de révocation ajoutée au trust store, et ils ne peuvent pas être modifiés. Si une liste de révocation de certificats est supprimée d'un trust store, son identifiant de révocation est également supprimé et n'est pas réutilisé pendant toute la durée de vie du trust store.

Note

Les équilibreurs de charge d'application ne peuvent pas révoquer les certificats dont le numéro de série est négatif dans une liste de révocation de certificats.

Afficher une liste de révocation de certificats
Pour consulter une liste de révocation à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Trust Stores.

  3. Sélectionnez le trust store pour afficher la page de détails.

  4. Dans l'onglet Listes de révocation de certificats, sélectionnez Actions, puis Obtenir la liste de révocation.

  5. Choisissez Partager le lien ou Télécharger.

Modifier un trust store

Un magasin de confiance ne peut contenir qu'un seul ensemble de certificats CA à la fois, mais vous pouvez le remplacer à tout moment une fois le magasin de confiance créé.

Remplacer un bundle de certificats CA

Pour remplacer un ensemble de certificats CA à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Trust Stores.

  3. Sélectionnez le trust store pour afficher la page de détails.

  4. Choisissez Actions, puis Remplacer le bundle CA.

  5. Sur la page Remplacer le bundle CA, sous le bundle d'autorité de certification, entrez l'emplacement Amazon S3 du bundle CA souhaité.

  6. (Facultatif) Utilisez la version de l'objet pour sélectionner une version précédente de la liste de révocation des certificats. Dans le cas contraire, c'est la version actuelle qui est utilisée.

  7. Sélectionnez Remplacer le bundle CA.

Ajouter une liste de révocation de certificats

Pour ajouter une liste de révocation à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Trust Stores.

  3. Sélectionnez le trust store pour afficher sa page de détails.

  4. Dans l'onglet Listes de révocation de certificats, sélectionnez Actions, puis Ajouter une liste de révocation.

  5. Sur la page Ajouter une liste de révocation, sous Liste de révocation de certificats, entrez l'emplacement Amazon S3 de la liste de révocation de certificats souhaitée.

  6. (Facultatif) Utilisez la version de l'objet pour sélectionner une version précédente de la liste de révocation des certificats. Dans le cas contraire, c'est la version actuelle qui est utilisée.

  7. Sélectionnez Ajouter une liste de révocation

Supprimer une liste de révocation de certificats

Pour supprimer une liste de révocation à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Trust Stores.

  3. Sélectionnez le trust store pour afficher la page de détails.

  4. Dans l'onglet Listes de révocation de certificats, sélectionnez Actions, puis Supprimer la liste de révocation.

  5. Confirmez la suppression en tapantconfirm.

  6. Sélectionnez Delete (Supprimer).

Supprimer un trust store

Lorsque vous n'avez plus besoin d'un trust store, vous pouvez le supprimer.

Remarque : Vous ne pouvez pas supprimer un trust store actuellement associé à un écouteur.

Pour supprimer un trust store à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Trust Stores.

  3. Sélectionnez le trust store pour afficher sa page de détails.

  4. Choisissez Actions, puis Supprimer le trust store.

  5. Confirmez la suppression en tapantconfirm.

  6. Sélectionnez Supprimer

Journaux de connexion pour les équilibreurs de charge d'application

Elastic Load Balancing fournit des journaux de connexion qui capturent les attributs relatifs aux demandes envoyées à vos équilibreurs de charge d'application. Les journaux de connexion contiennent des informations telles que l'adresse IP et le port du client, les informations du certificat client, les résultats de la connexion et les chiffrements TLS utilisés. Ces journaux de connexion peuvent ensuite être utilisés pour examiner les modèles de demandes et d'autres tendances.

Pour en savoir plus sur les journaux de connexion, voir Journaux de connexion pour votre Application Load Balancer