Configuración de la autenticación mutua « TLS » a nivel de grupo

Configura la autenticación mutua TLS ( mTLS ) a nivel de grupo para verificar los certificados de los servidores de fondo y presentar los certificados de cliente al conectarse a dichos servidores.

Antes de empezar

Antes de configurar la autenticación a nivel de grupo, asegúrate de que dispones de:

  • Un equilibrador de carga de aplicaciones con un perfil compatible con la función « mTLS » (comprueba la propiedad « mtls_supported »)
  • Un grupo configurado con el protocolo « HTTPS »
  • (Opcional) Un certificado de CA válido en formato PEM almacenado en Secrets Manager para verificar los certificados del servidor back-end
  • (Opcional) Un certificado de cliente válido con clave privada en formato PEM, almacenado en Secrets Manager, para presentarlo a los servidores de back-end
  • Los permisos de IAM adecuados para gestionar los equilibradores de carga y los certificados de acceso en Secrets Manager

Comprender la autenticación a nivel de grupo en « mTLS »

La autenticación a nivel de grupo ofrece dos funciones distintas para proteger las conexiones entre el equilibrador de carga y los servidores back-end:

Autenticación de servidor
Verifica la identidad de los servidores de back-end comprobando que sus certificados coinciden con un certificado de una autoridad de certificación (CA) configurada. De este modo se garantiza que el equilibrador de carga solo se conecte a servidores back-end de confianza.
Autenticación de cliente
Presentar un certificado de cliente del equilibrador de carga a los servidores back-end cuando la infraestructura back-end requier mTLS. Esto permite a los servidores de back-end verificar la identidad del equilibrador de carga.

Estas funciones se pueden configurar de forma independiente o conjunta, en función de tus requisitos de seguridad.

Configuración de la autenticación del servidor « mTLS »

La autenticación del servidor consta de dos componentes:

Verificar certificado
Un indicador booleano que activa o desactiva la verificación de certificados del servidor back-end. Cuando está activado, el equilibrador de carga valida los certificados de los servidores de back-end durante el protocolo de enlace « TLS ».
Certificado de la autoridad de certificación (CA)
Un certificado de CA opcional que se utiliza para verificar los certificados de los servidores de fondo. Si la verificación del servidor está activada pero no se proporciona ningún certificado de CA, el equilibrador de carga utiliza el almacén de confianza del sistema para validar los certificados de los servidores de fondo.

Configuración de la autenticación de « mTLS » en el cliente

La autenticación del cliente requiere:

Certificado de cliente
Un certificado con clave privada que el equilibrador de carga presenta a los servidores de back-end cuando estos solicitan la autenticación del cliente durante el protocolo de enlace « TLS ». El certificado debe guardarse en Secrets Manager.

Configuración de la autenticación de grupo « mTLS » en la consola

Para configurar la autenticación de un grupo en la consola de IBM Cloud:

  1. Accede a la página « Equilibadores de carga para VPC ».
  2. Haz clic en el nombre de tu Application Load Balancer.
  3. Haz clic en la pestaña « Grupos de back-end ».
  4. En el caso de una piscina ya existente, haz clic en el menú «Acciones »( y selecciona « Editar ». Para crear un nuevo grupo, haz clic en « Crear ».
  5. En la configuración del grupo de servidores:
    • Asegúrate de que el Protocolo esté configurado en HTTPS.
  6. En la sección « Autenticación del servidor »:
    • Selecciona « Verificar certificado del servidor » para habilitar la verificación del certificado del servidor de fondo.
    • (Opcional) En «Autoridad de certificación», selecciona el certificado de CA de Secrets Manager que se utilizará para verificar los certificados del servidor de fondo. Si no se especifica, se utiliza el almacén de confianza del sistema.
  7. En la sección « Autenticación del cliente »:
    • En el campo «Certificado de cliente», selecciona el certificado de Secrets Manager que el equilibrador de carga presentará a los servidores de back-end.
  8. Haz clic en « Guardar » o « Crear ».

Configuración de la autenticación de un grupo de servidores « mTLS » desde la CLI

Creación de un grupo con autenticación de servidor de « mTLS »

Para crear un grupo con la verificación de certificados del servidor back-end activada, utiliza el comando « 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]

Donde:

  • POOL_NAME Es el nombre de tu piscina.
  • LOAD_BALANCER es el ID o el nombre de tu equilibrador de carga.
  • ALGORITHM es el algoritmo de equilibrio de carga (round_robin, weighted_round_robin o least_connections).
  • PROTOCOL Debe ser « https » para que sea compatible con « mTLS ».
  • CA_CERT_CRN es el CRN opcional del certificado de la autoridad de certificación (CA) que se utiliza para verificar los certificados de los servidores de fondo.

Ejemplo:

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

Creación de un grupo con autenticación de cliente « mTLS »

Para crear un grupo con la presentación de certificados de cliente habilitada:

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

Ejemplo:

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

Creación de un grupo con autenticación tanto por parte del servidor como del cliente mediante el protocolo mTLS

Para crear un grupo que incluya tanto la verificación del servidor como la presentación del certificado del cliente:

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

Actualización de un grupo para habilitar la autenticación del servidor « mTLS »

Para actualizar un grupo existente y habilitar la autenticación del servidor:

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

Ejemplo:

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

Actualización de un grupo para habilitar la autenticación de cliente « mTLS »

Para actualizar un grupo existente y habilitar la autenticación de clientes:

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

Desactivación de la autenticación del servidor « mTLS »

Para desactivar la autenticación del servidor en un grupo:

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

Desactivación de la autenticación de cliente « mTLS »

Para desactivar la autenticación de cliente en un grupo:

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

Configuración de la autenticación de grupo mediante la API

Creación de un grupo con un servidor « mTLS » y autenticación de cliente

Para crear un grupo con la autenticación de servidor y de cliente habilitadas, llama al método 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"
      }
    }
  }'

Actualización de un grupo para habilitar la autenticación del servidor « mTLS »

Para actualizar un grupo existente y habilitar la autenticación del servidor, llama al método 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"
      }
    }
  }'

Actualización de un grupo para habilitar la autenticación de cliente « mTLS »

Para actualizar un grupo existente y habilitar la autenticación de clientes:

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"
      }
    }
  }'

Desactivación de la autenticación del servidor « mTLS »

Para desactivar la autenticación del servidor, configura la propiedad « server_authentication » con el valor « 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
  }'

Desactivación de la autenticación de cliente « mTLS »

Para desactivar la autenticación de cliente, configura la propiedad « client_authentication » con el valor « 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
  }'

Configuración de la autenticación de grupo « mTLS » con Terraform

Para configurar la autenticación de un grupo mediante Terraform, utiliza el recurso « ibm_is_lb_pool » junto con los bloques « server_authentication » y « 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"
  }
}

Comprobación de la configuración de autenticación del grupo « mTLS »

Una vez configurada la autenticación por grupo, comprueba que funcione correctamente:

  1. Comprueba el estado del grupo para asegurarte de que los servidores back-end funcionan correctamente:

    ibmcloud is load-balancer-pool LOAD_BALANCER POOL
    
  2. Si la verificación del servidor está activada, asegúrate de que los servidores back-end presenten certificados válidos firmados por la CA configurada.

  3. Si la autenticación de clientes está habilitada, comprueba que los servidores de fondo puedan validar el certificado de cliente presentado por el equilibrador de carga.

  4. Supervisa los registros del equilibrador de carga para detectar cualquier error en el protocolo de enlace « TLS » que pueda indicar problemas de validación de certificados.

Consideraciones importantes sobre la autenticación a nivel de grupo en « mTLS »

La configuración a nivel de grupo se aplica a todos los servidores del back-end
Tanto la autenticación del servidor como la del cliente se configuran a nivel de grupo. Todos los servidores de back-end del grupo utilizan la misma configuración de autenticación. Si necesitas políticas de certificados diferentes para distintos servidores de fondo, crea grupos independientes.
Varias autoridades de certificación para los servidores de fondo
Cuando los servidores back-end de un mismo grupo están firmados por distintas autoridades de certificación, puedes proporcionar un archivo de CA agrupado que contenga todos los certificados raíz e intermedios pertinentes. Todos los servidores de back-end se consideran de confianza si su cadena de certificados está vinculada a cualquier CA incluida en el paquete.
Almacén de certificados del sistema
Si la verificación del servidor está habilitada pero no se proporciona ningún certificado de CA, el equilibrador de carga utiliza el almacén de confianza del sistema ( Ubuntu Linux ) para validar los certificados de los servidores de fondo. Esto funciona con certificados firmados por autoridades de certificación públicas reconocidas, pero no con certificados autofirmados ni con autoridades de certificación privadas.
Actualizaciones de certificados
Cuando actualizas los certificados en Secrets Manager, el equilibrador de carga recupera automáticamente los certificados actualizados. No obstante, es posible que sea necesario restablecer las conexiones activas para poder utilizar los nuevos certificados.

Próximos pasos