Certificado mTLS
O certificado mTLS (Mutual TLS) é um mecanismo de segurança utilizado para garantir autenticação mútua entre cliente e servidor durante a comunicação com a API.
🔐 O que é o certificado mTLS?
O certificado mTLS (Mutual TLS) é um mecanismo de segurança utilizado para garantir autenticação mútua entre cliente e servidor durante a comunicação com a API.
Diferente do HTTPS tradicional, onde apenas o servidor apresenta um certificado para provar sua identidade, no mTLS ambas as partes se autenticam:
- O servidor comprova que é realmente a infraestrutura da Paytime.
- O cliente comprova que está autorizado a consumir a API.
Isso impede acessos não autorizados, reduz riscos de fraude e aumenta significativamente a segurança das integrações financeiras, especialmente em operações sensíveis como PIX, TED e pagamentos.
Durante a conexão:
- O cliente envia seu certificado digital.
- O servidor valida se o certificado foi assinado pela autoridade certificadora autorizada pela Paytime.
- Apenas após essa validação a comunicação é liberada.
📋 Como será implementado
O processo de implementação do certificado mTLS seguirá o fluxo abaixo:
🔹 Etapa 1 — geração da chave privada e CSR
O parceiro deverá gerar localmente:
- Uma chave privada (client.key)
- Uma requisição de assinatura de certificado (client.csr)
A chave privada permanece exclusivamente sob responsabilidade do parceiro e nunca deve ser compartilhada.
Comando:
openssl req -new -newkey rsa:2048 -nodes -keyout client.key -out client.csr -subj "/C=BR/ST=Sao Paulo/L=Sao Paulo/O=Minha Empresa/CN=meu-servico.meudominio.com/UID=token-de-integracao"Explicação dos parâmetros:
| Parâmetro | Descrição |
|---|---|
-newkey rsa:2048 | Gera uma nova chave RSA de 2048 bits |
-nodes | A chave privada não será criptografada com senha |
-keyout client.key | Define o arquivo da chave privada (mantenha em segurança) |
-out client.csr | Define o arquivo da requisição de certificado (CSR) |
-subj | Define os dados utilizados na geração do certificado |
Campos do -subj:
-subj:| Campo | Significado | Exemplo |
|---|---|---|
C | País | BR |
ST | Estado | Sao Paulo |
L | Cidade | Sao Paulo |
O | Organização | Minha Empresa |
CN | Identificador do serviço | meu-servico.meudominio.com |
UID | Token de integração | x_token |
AtençãoO token de integração utilizado no campo UID será disponibilizado pela Paytime após a aprovação do roteiro de homologação.
🔹 Etapa 2 — envio da CSR para a Paytime
O arquivo client.csr deverá ser enviado para análise e assinatura.
📧 E-mail: [email protected] com o assunto: Certificado mTLS - API Paytime - CNPJ: [Informe o cnpj]
A CSR funciona como uma solicitação formal para emissão do certificado do cliente.
| Arquivo | Descrição | Ação |
|---|---|---|
client.key | Chave privada | NÃO envie — mantenha em segurança. |
client.csr | Requisição de certificado (CSR) | Envie para a Paytime para assinatura. |
🔹 Etapa 3 — assinatura do certificado
A Paytime atuará como Autoridade Certificadora (CA) da integração.
Após validação, será retornado:
sing-cert.crt→ certificado assinado pela Paytime
Nesse momento, o parceiro possuirá:
| Arquivo | Responsabilidade |
|---|---|
client.key | Gerado e armazenado pelo parceiro. NÃO compartilhe. |
sing-cert.crt | Assinado e fornecido pela Paytime. |
🔹 Etapa 4 — utilização do certificado nas chamadas da API
As requisições para APIs protegidas por mTLS deverão enviar:
- URL para request rotas Payout: https://banking.paytime.com.br
- Certificado do cliente
- Chave privada correspondente
Exemplo:
curl -X POST https://banking.paytime.com.br \
--cert client.crt \
--key client.key \
--header 'integration-key: d0a' \
--header 'x-token: 4d3c49111' \
--header 'establishment_id: 155085' \
--header 'Authorization: Bearer ey' \
--header 'Content-Type: application/json' \
--data-raw '{
"document": "11299221000129"
}'
Após a geração do certificado e a conclusão da configuração do mTLS, a Paytime solicitará a execução de um teste de conectividade utilizando uma rota BANKING OUT, com o objetivo de validar a autenticação mútua e garantir que a comunicação segura esteja funcionando corretamente.
🔒 Benefícios do mTLS
O uso do mTLS traz vantagens importantes para integrações financeiras:
- Validação forte de identidade do parceiro
- Restrição de acesso apenas a clientes autorizados
- Redução de ataques de interceptação e spoofing
- Comunicação criptografada ponta a ponta
- Camada adicional de segurança além de tokens e autenticação Bearer
⚠️ Pontos importantes
O certificado possui validade de 1 ano
- Necessário para ambiente de produção
- Em caso de comprometimento da chave privada, a revogação deve ser solicitada imediatamente
- O arquivo
client.keynunca deve ser enviado para terceiros ou versionado em repositórios Git
🔐 Recomendação de segurança
Restrinja o acesso à chave privada:
chmod 600 client.keyResumo rápido do fluxo
- Cliente gera client.key + client.csr
- Cliente envia client.csr para Paytime
- Paytime assina o certificado
- Cliente recebe sing-cert.crt
- Cliente utiliza sing-cert.crt + client.key nas chamadas HTTPS
- API valida o certificado antes de permitir acesso
Updated about 2 months ago