> ## Documentation Index
> Fetch the complete documentation index at: https://docs.delfinance.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# mTLS

> Detalhes de implementação e operação do mTLS para a API da Delfinance

<Note>
  Esta é a página de detalhes do mTLS. Para a visão geral de autenticação, segurança e quando esse recurso entra em cena, consulte [Autenticação e segurança](/iniciacao/autenticacao).
</Note>

O mTLS (Mutual TLS) é a camada de segurança que valida o certificado do cliente durante o handshake TLS. Em Produção, ele é obrigatório e deve ser usado junto com as credenciais da API.

## Quando é obrigatório

* **Sandbox**: opcional para testes
* **Produção**: obrigatório

## Como funciona

1. O cliente valida o certificado do servidor.
2. O servidor solicita o certificado do cliente.
3. O cliente envia seu certificado assinado.
4. O servidor valida o certificado contra a CA da Delfinance.
5. A conexão segura é estabelecida.

## Processo de emissão do certificado

<Steps>
  <Step title="Gere um CSR">
    Crie uma solicitação de certificado com sua chave privada.
  </Step>

  <Step title="Envie o CSR ao portal Delfinance">
    Acesse o portal do desenvolvedor e submeta o arquivo gerado.
  </Step>

  <Step title="Baixe o certificado emitido">
    Você receberá o certificado assinado pela CA da Delfinance.
  </Step>

  <Step title="Armazene com segurança">
    Guarde a chave privada em um cofre seguro, como AWS KMS, HashiCorp Vault ou HSM.
  </Step>
</Steps>

## Exemplo de uso

```bash theme={null}
curl https://api.delbank.com.br/v1/accounts \
  --cert ./certificado.pem \
  --key ./chave-privada.key \
  -H "x-delbank-api-key: SUA_API_KEY" \
  -H "x-delfinance-account-id: SUA_ACCOUNT_ID"
```

## Boas práticas

* nunca versione a chave privada em repositórios;
* rotacione certificados antes do vencimento;
* teste a cadeia de confiança em ambiente de homologação;
* monitore falhas de handshake para detectar tentativas suspeitas.

## Erros comuns

| Erro                                                  | Causa                                      |
| ----------------------------------------------------- | ------------------------------------------ |
| `SSL certificate problem: unable to get local issuer` | CA não confiável ou certificado incompleto |
| `alert bad certificate`                               | Certificado expirado ou revogado           |
| `handshake failure`                                   | Cipher suite ou versão TLS incompatível    |
| `certificate verify failed`                           | Certificado não corresponde ao cadastrado  |
