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:
- Acesse a página “Equilibradores de carga para VPC ”.
- Clique no nome do seu Balanceador de Carga de Aplicativos.
- Clique na guia “Pools de back-end ”.
- Para uma piscina existente, clique no menu Ações
e selecione Editar. Para criar um novo pool, clique em “Criar ”.
- Na configuração do pool:
- Certifique-se de que o Protocolo esteja definido como HTTPS.
- 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.
- 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.
- 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).PROTOCOLdeve serhttpspara oferecer suporte amTLS.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:
-
Verifique o status do pool para garantir que os servidores de back-end estejam funcionando corretamente:
ibmcloud is load-balancer-pool LOAD_BALANCER POOL -
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.
-
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.
-
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.