Configuration de l'authentification par « mutual TLS » au niveau du pool

Configurez l'authentification par « TLS » ( mTLS ) au niveau du pool afin de vérifier les certificats des serveurs back-end et de présenter les certificats clients lors de la connexion à ces serveurs.

Avant de commencer

Avant de configurer l'authentification au niveau du pool, assurez-vous de disposer des éléments suivants :

  • Un équilibreur de charge d'applications doté d'un profil prenant en charge la fonctionnalité « mTLS » (vérifiez la propriété « mtls_supported »)
  • Un pool configuré avec le protocole « HTTPS »
  • (Facultatif) Un certificat d'autorité de certification (CA) valide au format PEM, stocké dans Secrets Manager, permettant de vérifier les certificats des serveurs back-end
  • (Facultatif) Un certificat client valide avec clé privée au format PEM, stocké dans Secrets Manager, à présenter aux serveurs back-end
  • Les autorisations IAM nécessaires pour gérer les équilibreurs de charge et les certificats d'accès dans Secrets Manager

Comprendre l'authentification au niveau du pool dans « mTLS »

L'authentification au niveau du pool offre deux fonctionnalités distinctes pour sécuriser les connexions entre l'équilibreur de charge et les serveurs back-end :

Authentification auprès du serveur
Vérifiez l'identité des serveurs back-end en validant leurs certificats par rapport à un certificat d'autorité de certification (CA) configuré. Cela garantit que l'équilibreur de charge ne se connecte qu'à des serveurs back-end de confiance.
Authentification de client
Présentez un certificat client provenant de l'équilibreur de charge aux serveurs back-end lorsque l'infrastructure back-end nécessite l' mTLS. Cela permet aux serveurs back-end de vérifier l'identité de l'équilibreur de charge.

Ces fonctionnalités peuvent être configurées séparément ou conjointement, en fonction de vos besoins en matière de sécurité.

Configuration de l'authentification « mTLS » sur le serveur

L'authentification du serveur comprend deux éléments :

Vérifier le certificat
Un indicateur booléen qui active ou désactive la vérification des certificats du serveur back-end. Lorsqu'il est activé, l'équilibreur de charge valide les certificats des serveurs back-end lors de la phase d'établissement de la connexion ( TLS ).
Certificat d'autorité de certification (CA)
Un certificat d'autorité de certification (CA) facultatif utilisé pour vérifier les certificats des serveurs back-end. Si la vérification du serveur est activée mais qu'aucun certificat d'autorité de certification n'est fourni, l'équilibreur de charge utilise le magasin de certificats de confiance du système pour valider les certificats des serveurs back-end.

Configuration de l'authentification du client « mTLS »

L'authentification du client nécessite :

Certificat client
Un certificat accompagné d'une clé privée que l'équilibreur de charge présente aux serveurs back-end lorsque ceux-ci demandent une authentification du client lors de la phase d'établissement de la connexion TLS. Le certificat doit être enregistré dans le répertoire « Secrets Manager ».

Configuration de l'authentification par pool « mTLS » dans la console

Pour configurer l'authentification d'un pool dans la console d' IBM Cloud:

  1. Accédez à la page « Équilibreurs de charge pour VPC ».
  2. Cliquez sur le nom de votre équilibreur de charge d'application.
  3. Cliquez sur l'onglet « Pools back-end ».
  4. Pour une piscine existante, cliquez sur le menu « Actions » ( Menu Actions ) et sélectionnez « Modifier » ( ). Pour créer un nouveau pool, cliquez sur « Créer ».
  5. Dans la configuration du pool :
    • Assurez-vous que le protocole est défini sur HTTPS.
  6. Dans la section « Authentification du serveur » :
    • Sélectionnez « Vérifier le certificat du serveur » pour activer la vérification du certificat du serveur back-end.
    • (Facultatif) Pour l'autorité de certification, sélectionnez le certificat d'autorité de certification disponible à l'adresse Secrets Manager, qui sera utilisé pour vérifier les certificats du serveur back-end. Si aucune indication n'est fournie, c'est le magasin de confiance du système qui est utilisé.
  7. Dans la section « Authentification du client » :
    • Pour le certificat client, sélectionnez le certificat disponible à l'adresse Secrets Manager que l'équilibreur de charge présentera aux serveurs back-end.
  8. Cliquez sur « Enregistrer » ou « Créer ».

Configuration de l'authentification du pool « mTLS » à partir de l'interface de ligne de commande (CLI)

Création d'un pool avec authentification par serveur « mTLS »

Pour créer un pool avec la vérification du certificat du serveur back-end activée, utilisez la commande « ibmcloud is load-balancer-pool-create » :

ibmcloud is load-balancer-pool-create POOL_NAME LOAD_BALANCER ALGORITHM PROTOCOL \
  HEALTH_DELAY HEALTH_RETRIES HEALTH_TIMEOUT HEALTH_TYPE \
  --server-auth-verify-cert true \
  [--server-auth-ca-crn CA_CERT_CRN]

Où :

  • POOL_NAME C'est le nom de votre piscine.
  • LOAD_BALANCER Il s'agit de l'identifiant ou du nom de votre équilibreur de charge.
  • ALGORITHM est l'algorithme d'équilibrage de charge (round_robin, weighted_round_robin ou least_connections).
  • PROTOCOL doit être « https » pour que mTLS fonctionne correctement.
  • CA_CERT_CRN Il s'agit du CRN facultatif du certificat CA utilisé pour vérifier les certificats des serveurs back-end.

Exemple :

ibmcloud is load-balancer-pool-create my-pool my-load-balancer round_robin https \
  20 2 5 http \
  --server-auth-verify-cert true \
  --server-auth-ca-crn crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511

Création d'un pool avec l'authentification client « mTLS »

Pour créer un pool avec la présentation de certificats clients activée :

ibmcloud is load-balancer-pool-create POOL_NAME LOAD_BALANCER ALGORITHM PROTOCOL \
  HEALTH_DELAY HEALTH_RETRIES HEALTH_TIMEOUT HEALTH_TYPE \
  --client-auth-cert-crn CLIENT_CERT_CRN

Exemple :

ibmcloud is load-balancer-pool-create my-pool my-load-balancer round_robin https \
  20 2 5 http \
  --client-auth-cert-crn crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f512

Création d'un pool avec authentification à la fois par le serveur et par le client ( mTLS )

Pour créer un pool combinant la vérification côté serveur et la présentation d'un certificat côté client :

ibmcloud is load-balancer-pool-create my-pool my-load-balancer round_robin https \
  20 2 5 http \
  --server-auth-verify-cert true \
  --server-auth-ca-crn crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511 \
  --client-auth-cert-crn crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f512

Mise à jour d'un pool pour activer l'authentification par le serveur « mTLS »

Pour mettre à jour un pool existant afin d'activer l'authentification par serveur :

ibmcloud is load-balancer-pool-update LOAD_BALANCER POOL \
  --server-auth-verify-cert true \
  [--server-auth-ca-crn CA_CERT_CRN]

Exemple :

ibmcloud is load-balancer-pool-update my-load-balancer my-pool \
  --server-auth-verify-cert true \
  --server-auth-ca-crn crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511

Mise à jour d'un pool pour activer l'authentification client « mTLS »

Pour mettre à jour un pool existant afin d'activer l'authentification client :

ibmcloud is load-balancer-pool-update LOAD_BALANCER POOL \
  --client-auth-cert-crn CLIENT_CERT_CRN

Désactivation de l'authentification du serveur « mTLS »

Pour désactiver l'authentification du serveur pour un pool :

ibmcloud is load-balancer-pool-update LOAD_BALANCER POOL --reset-server-auth

Désactivation de l'authentification client « mTLS »

Pour désactiver l'authentification client pour un pool :

ibmcloud is load-balancer-pool-update LOAD_BALANCER POOL --reset-client-auth

Configuration de l'authentification par pool à l'aide de l'API

Création d'un pool avec l'authentification serveur et client d' mTLS

Pour créer un pool dans lequel l'authentification côté serveur et côté client est activée, appelez la méthode POST /load_balancers/{load_balancer_id}/pools :

curl -X POST \
  "$vpc_api_endpoint/v1/load_balancers/$load_balancer_id/pools?version=2026-05-06&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
    "name": "my-pool",
    "algorithm": "round_robin",
    "protocol": "https",
    "health_monitor": {
      "delay": 20,
      "max_retries": 2,
      "timeout": 5,
      "type": "http"
    },
    "server_authentication": {
      "verify_certificate": true,
      "certificate_authority": {
        "crn": "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511"
      }
    },
    "client_authentication": {
      "certificate_instance": {
        "crn": "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f512"
      }
    }
  }'

Mise à jour d'un pool pour activer l'authentification par le serveur « mTLS »

Pour mettre à jour un pool existant afin d'activer l'authentification par serveur, appelez la méthode PATCH /load_balancers/{load_balancer_id}/pools/{id} :

curl -X PATCH \
  "$vpc_api_endpoint/v1/load_balancers/$load_balancer_id/pools/$pool_id?version=2026-05-06&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
    "server_authentication": {
      "verify_certificate": true,
      "certificate_authority": {
        "crn": "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511"
      }
    }
  }'

Mise à jour d'un pool pour activer l'authentification client « mTLS »

Pour mettre à jour un pool existant afin d'activer l'authentification client :

curl -X PATCH \
  "$vpc_api_endpoint/v1/load_balancers/$load_balancer_id/pools/$pool_id?version=2026-05-06&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
    "client_authentication": {
      "certificate_instance": {
        "crn": "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f512"
      }
    }
  }'

Désactivation de l'authentification du serveur « mTLS »

Pour désactiver l'authentification du serveur, définissez la propriété « server_authentication » sur « null » :

curl -X PATCH \
  "$vpc_api_endpoint/v1/load_balancers/$load_balancer_id/pools/$pool_id?version=2026-05-06&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
    "server_authentication": null
  }'

Désactivation de l'authentification client « mTLS »

Pour désactiver l'authentification client, définissez la propriété « client_authentication » sur « null » :

curl -X PATCH \
  "$vpc_api_endpoint/v1/load_balancers/$load_balancer_id/pools/$pool_id?version=2026-05-06&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
    "client_authentication": null
  }'

Configuration de l'authentification par pool d' mTLS s avec Terraform

Pour configurer l'authentification d'un pool à l'aide de Terraform, utilisez la ressource « ibm_is_lb_pool » avec les blocs « server_authentication » et « client_authentication » :

resource "ibm_is_lb_pool" "example" {
  lb                 = ibm_is_lb.example.id
  name               = "my-pool"
  algorithm          = "round_robin"
  protocol           = "https"
  health_delay       = 20
  health_retries     = 2
  health_timeout     = 5
  health_type        = "http"

  server_authentication {
    verify_certificate = true
    certificate_authority_crn = "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511"
  }

  client_authentication {
    certificate_instance_crn = "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f512"
  }
}

Vérification de la configuration de l'authentification du pool « mTLS »

Une fois l'authentification par pool configurée, vérifiez qu'elle fonctionne correctement :

  1. Vérifiez l'état du pool pour vous assurer que les serveurs back-end fonctionnent correctement :

    ibmcloud is load-balancer-pool LOAD_BALANCER POOL
    
  2. Si la vérification du serveur est activée, assurez-vous que les serveurs back-end présentent des certificats valides signés par l'autorité de certification configurée.

  3. Si l'authentification du client est activée, vérifiez que les serveurs back-end sont en mesure de valider le certificat client présenté par l'équilibreur de charge.

  4. Surveillez les journaux de l'équilibreur de charge afin de détecter d'éventuelles erreurs de négociation « TLS » pouvant indiquer des problèmes de validation de certificat.

Considérations importantes concernant l'authentification au niveau de la pool dans mTLS

La configuration au niveau du pool s'applique à tous les serveurs back-end
L'authentification du serveur et celle du client sont toutes deux configurées au niveau du pool. Tous les serveurs back-end du pool utilisent les mêmes paramètres d'authentification. Si vous avez besoin de politiques de certificats différentes pour différents serveurs back-end, créez des pools distincts.
Plusieurs autorités de certification pour les serveurs back-end
Lorsque les serveurs back-end d'un même pool sont signés par différentes autorités de certification, vous pouvez fournir un fichier CA regroupant tous les certificats racine et intermédiaires nécessaires. Tous les serveurs back-end sont considérés comme fiables si leur chaîne de certificats est liée à une autorité de certification (CA) incluse dans le pack.
Magasin de certificats du système
Si la vérification du serveur est activée mais qu'aucun certificat d'autorité de certification n'est fourni, l'équilibreur de charge utilise le magasin de confiance du système ( Ubuntu Linux ) pour valider les certificats des serveurs back-end. Cela fonctionne pour les certificats signés par des autorités de certification publiques reconnues, mais pas pour les certificats auto-signés ni pour ceux émis par des autorités de certification privées.
Mises à jour des certificats
Lorsque vous mettez à jour les certificats dans Secrets Manager, l'équilibreur de charge récupère automatiquement les certificats mis à jour. Il se peut toutefois que les connexions actives doivent être rétablies pour pouvoir utiliser les nouveaux certificats.

Etapes suivantes