Todos os artigos sobre SSL SSL e certificados

O que e Mutual TLS (mTLS)? Autenticação por Certificado de Cliente

No HTTPS comum, apenas o servidor prova sua identidade com um certificado. O cliente (navegador) e anonimo — o servidor não sabe quem esta se conectando.

Mutual TLS (mTLS) adiciona uma segunda etapa: o cliente também apresenta um certificado. Ambos os lados se autenticam mutuamente. O servidor verifica o certificado do cliente contra uma CA confiavel, e o cliente verifica o do servidor — por isso “mutual” (mutuo).

TLS Regular vs Mutual TLS

TLS RegularMutual TLS (mTLS)
Servidor prova identidade✅ Certificado + assinatura da CA✅ Mesmo
Cliente prova identidade❌ Anonimo✅ Certificado do cliente
AutenticaçãoUnidirecional (apenas servidor)Bidirecional (ambos)
Caso de usoSites publicosAPIs internas, zero trust
Cliente precisaApenas um navegadorCertificado + chave privada
Complexidade de configuraçãoPadrãoMaior — necessário gerenciar certs de clientes

Quando usar mTLS

Comunicação serviço-a-serviço

Microsservicos se comunicando entre si pela rede. O mTLS garante que apenas serviços autorizados podem se conectar — não apenas qualquer pessoa que conheca a URL.

Service A ←──mTLS──→ Service B
Ambos verificam: "Você e quem diz ser?"

Arquitetura Zero Trust

No zero trust, nenhuma conexão de rede e confiavel por padrão — mesmo dentro da rede corporativa. O mTLS substitui a confiança no nível de rede (firewalls, VPNs) pela confiança no nível de identidade (certificados).

Segurança de API

Proteja APIs sensiveis alem de apenas chaves de API. Uma chave de API roubada pode ser usada por qualquer pessoa. Um certificado de cliente e vinculado a uma chave privada especifica — mais dificil de roubar e usar.

Autenticação de dispositivos IoT

Dispositivos se conectam a um backend com certificados de cliente provisionados durante a fabricacao. O servidor sabe que esta se comunicando com um dispositivo genuino, não com um falsificado.

Como o mTLS funciona

  1. Cliente se conecta e inicia o handshake TLS (igual ao TLS regular)
  2. Servidor envia seu certificado — cliente o verifica (igual ao TLS regular)
  3. Servidor solicita certificado do cliente — envia uma mensagem CertificateRequest
  4. Cliente envia seu certificado — servidor o verifica contra uma CA confiavel
  5. Ambos os lados calculam as chaves de sessao e a comunicação criptografada comeca

As etapas 3-4 sao o que torna “mutual”.

Configuração mTLS no Nginx

server {
    listen 443 ssl;
    server_name api.example.com;

    # Certificado do servidor (igual ao HTTPS regular)
    ssl_certificate     /etc/ssl/server-fullchain.pem;
    ssl_certificate_key /etc/ssl/server-privkey.pem;

    # Verificação do certificado do cliente
    ssl_client_certificate /etc/ssl/client-ca.pem;  # CA que assinou certs de clientes
    ssl_verify_client on;                            # Exigir cert do cliente

    # Opcional: passar info do cert do cliente para sua aplicação
    proxy_set_header X-Client-DN $ssl_client_s_dn;
    proxy_set_header X-Client-Verify $ssl_client_verify;
}

mTLS vs outros métodos de autenticação

MétodoNível de segurançaComplexidadeMelhor para
API keyBaixo (compartilhavel)BaixaAPIs publicas, rate limiting
OAuth/JWTMedioMediaAPIs voltadas ao usuario
mTLSAlto (vinculado criptograficamente)AltaServiço-a-serviço, zero trust
mTLS + JWTMais altoAltaAutenticação em transporte e aplicação

mTLS e GetHTTPS

O GetHTTPS emite certificados de servidor — os certificados que seu servidor web usa para provar sua identidade. Estes sao os certificados SSL padrão usados por todo site HTTPS.

Certificados de cliente para mTLS sao tipicamente emitidos por uma CA privada (a CA interna da sua organização), não por uma CA pública como o Let’s Encrypt. O Let’s Encrypt não emite certificados de cliente — ele só emite certificados de servidor para domínios publicos.

Perguntas frequentes

Posso usar o Let’s Encrypt para mTLS?

Para o certificado do servidor: sim. Para certificados de cliente: não. Certs de cliente precisam ser emitidos por uma CA privada que você controla — assim você decide quais clientes sao autorizados. Ferramentas como openssl, cfssl ou step-ca podem atuar como sua CA privada.

O mTLS é o mesmo que “autenticação por certificado de cliente”?

Sim. “Mutual TLS”, “mTLS”, “TLS bidirecional” e “autenticação por certificado de cliente” todos se referem a mesma coisa — ambos os lados apresentam certificados durante o handshake TLS.

O mTLS substitui chaves de API?

Pode, mas servem a propositos diferentes. O mTLS prova a identidade no nível de transporte (qual serviço esta se conectando). Chaves de API/JWTs provam a identidade no nível de aplicação (qual usuario/permissao). Muitos sistemas usam ambos juntos para defesa em profundidade.

Onde o mTLS e comumente usado?

Kubernetes (service mesh com Istio/Linkerd), Cloudflare Access, AWS API Gateway (mutual TLS), BeyondCorp do Google Cloud e a maioria das implementacoes enterprise de zero-trust.

Artigos relacionados

SSL e certificados 2026-05-07
Como SSL/TLS Funciona: O Handshake TLS Explicado
Um passo a passo visual do handshake TLS — como seu navegador é um servidor estabelecem uma conexão criptografada em milissegundos. Cobre TLS 1.2, TLS 1.3, retomada de sessão e forward secrecy.
SSL e certificados 2026-05-08
Criptografia de Chave Pública: Como a Criptografia SSL Realmente Funciona
A criptografia de chave pública usa um par de chaves — uma pública, uma privada — para proteger conexões HTTPS. Aprenda como a criptografia assimetrica, assinaturas digitais e troca de chaves tornam o SSL/TLS possível.
SSL e certificados 2026-05-08
O que é um Certificado SSL?
Um certificado SSL é um arquivo digital que autentica um site e habilita conexões HTTPS criptografadas. Aprenda o que ha dentro de um certificado, como funciona, como obter um gratuitamente e por que todo site precisa de um.
Obtenha um certificado SSL gratuito no seu navegador
Sem instalacao, sem conta. Sua chave privada nunca sai do seu dispositivo.
Obter seu certificado