Configurando a autenticação mútua do TLS no nível do pool

Configure a autenticação mútua do TLS ( mTLS ) no nível do pool para verificar os certificados dos servidores de back-end e apresentar os certificados dos clientes ao se conectar aos servidores de back-end.

Antes de Iniciar

Antes de configurar a autenticação no nível do pool, certifique-se de que você tenha:

  • Um balanceador de carga de aplicativos com um perfil compatível com o recurso “ mTLS ” (verifique a propriedade mtls_supported )
  • Um pool configurado com o protocolo HTTPS
  • (Opcional) Um certificado CA válido no formato PEM, armazenado em Secrets Manager, para verificar os certificados do servidor back-end
  • (Opcional) Um certificado de cliente válido com chave privada no formato PEM, armazenado em Secrets Manager, para ser apresentado aos servidores de back-end
  • As permissões de IAM adequadas para gerenciar balanceadores de carga e certificados de acesso em Secrets Manager

Entendendo a autenticação no nível do pool d mTLS

A autenticação no nível do pool oferece dois recursos distintos para proteger as conexões entre o balanceador de carga e os servidores de back-end:

Autenticação de servidor
Verifique a identidade dos servidores de back-end validando seus certificados em relação a um certificado de CA configurado. Isso garante que o balanceador de carga se conecte apenas a servidores back-end confiáveis.
Autenticação do cliente
Apresente um certificado de cliente do balanceador de carga aos servidores de back-end quando a infraestrutura de back-end exigir um mTLS. Isso permite que os servidores de back-end verifiquem a identidade do balanceador de carga.

Esses recursos podem ser configurados de forma independente ou em conjunto, dependendo de suas necessidades de segurança.

Configuração da autenticação do servidor “ mTLS ”

A autenticação do servidor consiste em dois componentes:

Certificado de verificação
Um sinalizador booleano que ativa ou desativa a verificação do certificado do servidor back-end. Quando ativado, o balanceador de carga valida os certificados dos servidores de back-end durante o handshake do protocolo TLS.
Certificado da Autoridade Certificadora (CA)
Um certificado de CA opcional usado para verificar os certificados do servidor back-end. Se a verificação do servidor estiver ativada, mas nenhum certificado de autoridade certificadora (CA) for fornecido, o balanceador de carga utiliza o armazenamento de confiança do sistema para validar os certificados dos servidores de back-end.

Configuração de autenticação do cliente mTLS

A autenticação do cliente requer:

Certificado de cliente
Um certificado com chave privada que o balanceador de carga apresenta aos servidores de back-end quando estes solicitam a autenticação do cliente durante o handshake do protocolo TLS. O certificado deve ser armazenado em Secrets Manager.

Configurando a autenticação de pool d mTLS no console

Para configurar a autenticação de um pool no console do IBM Cloud:

  1. Acesse a página “Equilibradores de carga para VPC ”.
  2. Clique no nome do seu Balanceador de Carga de Aplicativos.
  3. Clique na guia “Pools de back-end ”.
  4. Para uma piscina existente, clique no menu Ações e selecione Editar. Para criar um novo pool, clique em “Criar ”.
  5. Na configuração do pool:
    • Certifique-se de que o Protocolo esteja definido como HTTPS.
  6. Na seção “Autenticação do servidor ”:
    • Selecione “Verificar certificado do servidor ” para ativar a verificação do certificado do servidor back-end.
    • (Opcional) Para “Autoridade certificadora”, selecione o certificado da CA disponível em Secrets Manager, que será usado para verificar os certificados do servidor back-end. Caso não seja especificado, será utilizado o armazenamento de confiança do sistema.
  7. Na seção “Autenticação do cliente ”:
    • Para o certificado do cliente, selecione o certificado em Secrets Manager que o balanceador de carga apresentará aos servidores de back-end.
  8. Clique em “Salvar ” ou “Criar ”.

Configurando a autenticação de pool d mTLS s pela CLI

Criação de um pool com autenticação por servidor d mTLS

Para criar um pool com a verificação de certificado do servidor back-end ativada, use o 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]

Em que:

  • POOL_NAME é o nome da sua piscina.
  • LOAD_BALANCER é o ID ou o nome do seu balanceador de carga.
  • ALGORITHM é o algoritmo de balanceamento de carga (round_robin, weighted_round_robin ou least_connections).
  • PROTOCOL deve ser https para oferecer suporte a mTLS.
  • CA_CERT_CRN é o CRN opcional do certificado da CA usado para verificar os certificados do servidor back-end.

Exemplo:

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

Criação de um pool com autenticação de client mTLS

Para criar um pool com a apresentação de certificado 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

Exemplo:

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

Criação de um pool com autenticação por servidor e por cliente mTLS

Para criar um pool que utilize tanto a verificação do servidor quanto a apresentação do certificado do 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

Atualização de um pool para habilitar a autenticação por servidor d mTLS

Para atualizar um pool existente a fim de habilitar a autenticação por servidor:

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

Exemplo:

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

Atualização de um pool para habilitar a autenticação de cliente do tipo “ mTLS ”

Para atualizar um pool existente a fim de habilitar a autenticação de cliente:

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

Desativando a autenticação do servidor “ mTLS ”

Para desativar a autenticação do servidor para um pool:

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

Desativando a autenticação de cliente “ mTLS ”

Para desativar a autenticação de cliente para um pool:

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

Configurando a autenticação por pool com a API

Criação de um pool com autenticação de servidor e client mTLS

Para criar um pool com a autenticação de servidor e de cliente habilitadas, chame o 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"
      }
    }
  }'

Atualização de um pool para habilitar a autenticação por servidor d mTLS

Para atualizar um pool existente a fim de habilitar a autenticação por servidor, chame o 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"
      }
    }
  }'

Atualização de um pool para habilitar a autenticação de cliente do tipo “ mTLS ”

Para atualizar um pool existente a fim de habilitar a autenticação de cliente:

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

Desativando a autenticação do servidor “ mTLS ”

Para desativar a autenticação do servidor, defina a propriedade server_authentication como 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
  }'

Desativando a autenticação de cliente “ mTLS ”

Para desativar a autenticação do cliente, defina a propriedade client_authentication como 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
  }'

Configurando a autenticação de pool d mTLS s com o Terraform

Para configurar a autenticação de um pool usando o Terraform, utilize o recurso ibm_is_lb_pool com os blocos server_authentication e 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"
  }
}

Verificação da configuração de autenticação do pool do mTLS

Após configurar a autenticação do pool, verifique se ela está funcionando corretamente:

  1. Verifique o status do pool para garantir que os servidores de back-end estejam funcionando corretamente:

    ibmcloud is load-balancer-pool LOAD_BALANCER POOL
    
  2. Se a verificação do servidor estiver ativada, certifique-se de que os servidores de back-end apresentem certificados válidos assinados pela CA configurada.

  3. Se a autenticação do cliente estiver habilitada, verifique se os servidores de back-end conseguem validar o certificado do cliente apresentado pelo balanceador de carga.

  4. Monitore os logs do balanceador de carga em busca de erros no handshake do protocolo TLS que possam indicar problemas na validação do certificado.

Considerações importantes sobre a autenticação no nível do pool d mTLS

A configuração no nível do pool se aplica a todos os servidores de back-end
Tanto a autenticação do servidor quanto a autenticação do cliente são configuradas no nível do pool. Todos os servidores de back-end do conjunto utilizam as mesmas configurações de autenticação. Se você precisar de políticas de certificado diferentes para servidores de back-end distintos, crie conjuntos separados.
Várias autoridades certificadoras para servidores de back-end
Quando os servidores de back-end do mesmo pool são assinados por diferentes Autoridades Certificadoras, é possível fornecer um arquivo agrupado de CA contendo todos os certificados raiz e intermediários relevantes. Todos os servidores de back-end são considerados confiáveis se suas cadeias de certificados estiverem vinculadas a qualquer CA incluída no pacote.
Arquivo de confiança do sistema
Se a verificação do servidor estiver ativada, mas nenhum certificado de autoridade certificadora (CA) for fornecido, o balanceador de carga utiliza o repositório de confiança do sistema ( Ubuntu Linux ) para validar os certificados dos servidores de back-end. Isso funciona para certificados assinados por autoridades certificadoras públicas reconhecidas, mas não para certificados autoassinados ou de autoridades certificadoras privadas.
Atualizações de certificados
Ao atualizar os certificados em Secrets Manager, o balanceador de carga recupera automaticamente os certificados atualizados. No entanto, talvez seja necessário restabelecer as conexões ativas para utilizar os novos certificados.

Próximas etapas