Configure certificados de cliente para ativar a autenticação mútua TLS (mTLS) entre clientes e os POPs do Edge Security Acceleration (ESA) e reforçar a segurança de acesso.
Casos de uso
O mTLS é adequado para cenários de alta segurança que exigem verificação rigorosa de identidade de ambas as partes comunicantes.
Quando usar o mTLS:
Ambas as partes são entidades controladas, como serviços, dispositivos ou sistemas.
É necessária uma vinculação de identidade forte e persistente, em vez de tokens temporários.
Você pode gerenciar centralmente uma Infraestrutura de Chave Pública (PKI), incluindo a CA, a distribuição de certificados e a revogação.
Casos de uso típicos:
Autenticação serviço a serviço em microsserviços, como verificação mútua de identidade entre um serviço de pedidos e um de pagamentos. Tecnologias comuns: Istio, Linkerd e Kubernetes.
Conexões de gateway de API para origem, como APIs corporativas internas, open banking ou integrações com SaaS de terceiros.
Comunicação entre dispositivos IoT e a nuvem.
Acesso Zero Trust em redes corporativas, substituindo o modelo tradicional de confiança por VPN.
Sistemas financeiros, de pagamento e de saúde que precisam atender aos padrões PCI-DSS, HIPAA ou GDPR.
Quando não usar o mTLS:
Sites públicos (e-commerce, notícias) acessados por navegadores padrão. O gerenciamento de certificados é impraticável para usuários gerais.
APIs REST abertas sem requisitos rígidos de identidade. Use OAuth 2.0 ou chaves de API como alternativa.
Ambientes de teste com baixa segurança. O TLS unidirecional com autenticação básica é mais simples.
Como funciona o mTLS
No ESA, o mTLS se aplica apenas entre o cliente e o POP do ESA. O POP encerra o handshake TLS, verifica o certificado do cliente e encaminha a solicitação à origem sem transmitir o certificado.
Para mTLS ponta a ponta, em que o certificado do cliente é transmitido até a origem, use o proxy de Camada 4 (plano Enterprise). Esse proxy encaminha o tráfego TCP em modo de passagem, sem encerrar o TLS.
Emitir certificados de cliente
Use a CA fornecida pelo ESA para criar certificados de cliente e implantá-los em seus aplicativos móveis. O ESA gera uma CA exclusiva por conta, e todos os certificados emitidos por essa CA são automaticamente confiáveis pelos POPs do ESA.
A validade padrão do certificado é de um ano.
Criar um certificado
No console do ESA, acesse Websites. Na coluna Website, clique no site desejado.
No painel de navegação à esquerda, escolha . Clique em Create Certificate.
-
Selecione um método de CSR Generation, o Private Key Type e a Certificate Validity conforme suas necessidades e clique em OK.
ImportanteO ESA não armazena o certificado nem a chave privada; portanto, é impossível recuperá-los após o fechamento desta caixa de diálogo. Na caixa de diálogo de visualização do certificado, clique em Copy Certificate e em Copy Private Key para copiar o conteúdo para o seu cliente.
Vincular um hostname
Vincule um certificado de cliente a hostnames para ativar o mTLS. Somente clientes com um certificado válido podem acessar os hostnames vinculados.
No console do ESA, acesse Websites. Na coluna Website, clique no site desejado.
No painel de navegação à esquerda, escolha .
-
Na seção Hostname, clique em Configure. Na caixa de diálogo exibida, insira os hostnames e clique em OK.
NotaÉ possível inserir até 50 hostnames por vez.
Os hostnames devem estar associados ao site selecionado.
Revogar um certificado
Revogue certificados desnecessários ou comprometidos.
No console do ESA, acesse Websites. Na coluna Website, clique no site desejado.
No painel de navegação à esquerda, escolha .
Na lista de , localize o certificado a ser revogado e clique em Revoke na coluna Actions.
Na caixa de diálogo exibida, marque a caixa de seleção I confirm that the certificate is no longer required e clique em Yes.
Usar uma CA personalizada
Além dos certificados da CA do ESA, você pode usar sua própria CA privada.
Disponível apenas via OpenAPI. Cada plano suporta até cinco certificados de CA.
Procedimento
Chame a operação UploadClientCaCertificate para enviar seu certificado de CA raiz. Anote o ID do certificado retornado.
Chame a operação SetClientCertificateHostnames para vincular o certificado de CA aos hostnames. A validação mTLS aplica-se apenas aos hostnames vinculados.
-
Outras operações de API para certificados mTLS personalizados:
API
Descrição
Envia um certificado de CA personalizado.
Lista todos os certificados de CA personalizados enviados.
Exclui um certificado de CA personalizado.
Consulta os detalhes de um certificado de CA personalizado específico.
Vincula hostnames a um certificado de CA personalizado.
Consulta os hostnames vinculados a um certificado de CA personalizado.
Bloquear solicitações com falha na autenticação
Configure uma regra do Web Application Firewall (WAF) para bloquear solicitações que falharem na autenticação por certificado de cliente.
Procedimento
No console do ESA, acesse Websites. Na coluna Website, clique no site desejado.
No painel de navegação à esquerda, escolha para acessar a página de configuração de regras personalizadas.
-
Configure a regra personalizada do WAF.
Defina Client Certificate Verified como Desligado
.-
No campo Hostname, insira os hostnames aos quais deseja aplicar a regra.
ImportanteConfigure a condição de hostname. Caso contrário, a regra bloqueará todas as solicitações que não usarem ou falharem na autenticação por certificado de cliente.
Defina a Action como Block ou selecione outra ação conforme necessário.
-
Clique em OK para adicionar a regra.
As solicitações para os hostnames especificados que falharem ou ignorarem a autenticação por certificado de cliente serão bloqueadas com um código de status 403.
Verificação
-
Uma solicitação sem certificado de cliente é bloqueada com um código de status 403.

-
Uma solicitação com um certificado de cliente válido do ESA é bem-sucedida. Substitua o hostname, o caminho do certificado e o caminho da chave pelos seus valores.
curl -v "https://example.com" --cert ./example.crt --key ./example.key * Trying 198.51.100.10... * TCP_NODELAY set * Connected to example.com (198.51.100.10) port 443 (#0) * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * TLSv1.2 (OUT), TLS Unknown, Certificate Status (22): * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * NPN, negotiated HTTP1.1 * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Request CERT (13): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Certificate (11): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS handshake, CERT verify (15): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Next protocol (67): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Change cipher spec (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * Server certificate: * subject: CN=example.com * start date: Jul 31 00:00:00 2024 GMT * expire date: Jul 31 23:59:59 2025 GMT * subjectAltName: host "example.com" matched cert's "example.com" * issuer: C=US; O=Example CA; CN=Example DV TLS CA * SSL certificate verify ok. > GET / HTTP/1.1 > Host: example.com > User-Agent: curl/7.74.0 > Accept: */*