Protocolo de Segurança para comunicação segura entre duas partes sobre a internet.
- O TLS mútuo, ou mTLS, é um método para autenticação mútua.
- Ele assegura que as partes em cada extremidade de uma conexão de rede são quem afirmam ser, verificando que ambas têm a chave privada correta.
- As informações dentro de seus respectivos certificados TLS fornecem a verificação adicional.
- Transport Layer Security (TLS) é um protocolo de criptografia muito usado na internet.
- O TLS, antes era chamado SSL.
- Ele autentica o servidor em uma conexão cliente-servidor e criptografa as comunicações entre cliente e servidor para que as partes externas não possam espionar as comunicações.
Normalmente em TLS, o servidor tem um certificado TLS e um par de chaves pública/privada, mas o cliente não tem.
O processo típico do TLS funciona assim:
No mTLS, tanto o cliente quanto o servidor têm um certificado e ambos os lados autenticam usando seu par de chaves pública/privada.
O processo típico do mTLS funciona assim:
- NodeJS
- Yarn
- Servidor A:
/server $ yarn deva - Servidor B:
/server $ yarn devb
Requisição http:
curl http://localhost:3000/pingRequisição https:
curl --insecure https://localhost:3442/pingRequisição mTLS:
curl --insecure \
--cacert ./ca/ca.crt \
--key ./client/client.key \
--cert ./client/client.crt \
https://localhost:3443/pingRequisição http:
curl http://localhost:3001/pingRequisição https:
curl --insecure https://localhost:3444/pingRequisição mTLS:
curl --insecure \
--cacert ./ca/ca.crt \
--key ./client/client.key \
--cert ./client/client.crt \
https://localhost:3445/ping- Criando a chave
openssl genrsa -out server.key 2048- Criando o certificado
openssl req \
-new \
-key server.key \
-subj '/CN=localhost' \
-out server.csropenssl x509 \
-req \
-in server.csr \
-days 365 \
-signkey server.key \
-out server.crt- Inspecionando o certificado
openssl x509 --in server.crt -text --noout- Criando o certificado root
openssl req \
-new \
-x509 \
-nodes \
-days 365 \
-subj '/CN=root-ca' \
-keyout ca.key \
-out ca.crt- Inspecionando o certificado root
openssl x509 --in ca.crt -text --noout- Criando o certificado do servidor assinado com a CA
openssl x509 \
-req \
-in server.csr \
-CA ca.crt \
-CAkey ca.key \
-CAcreateserial \
-days 365 \
-out server-signed.crt- Inspecionando o certificado assinado
openssl x509 --in server-signed.crt -text --noout

