# Suporte para mTLS para Build

import DocButton from '~/components/webkit/DocButton.vue';

**Mutual Transport Layer Security (mTLS)**, também conhecido como *Mutual Authentication*, é um método de autenticação que valida o certificado digital de ambos os lados de uma requisição, tanto do lado do cliente como do lado do Edge (servidor).

Com o **mTLS** ativado, a Azion checa o certificado do navegador do usuário e o valida com o certificado **Trusted Certificate (Trusted CA)** da sua **Applications** no Edge.

**mTLS** é opcional para aplicações que utilizam protocolos *TLS*. No entanto, ele promete um *handshake TLS* mais seguro, além de ser um requisito do *Open Banking*.

:::tip[dica]
Você pode precisar do **mTLS** se sua applicação oferece serviços financeiros e pagamentos.
:::

## Pré-requisitos

É necessário que sua **Application** esteja operando com protocolo *Hypertext Transfer Protocol Secure (HTTPS)*. O [Azion Console](https://console.azion.com) permite configurar **mTLS** em aplicações rodando apenas com HTTP (sem a camada de criptografia TLS). No entanto, mTLS exige uma conexão HTTPS para funcionar.

As opções de protocolo estão disponíveis na página de configuração da sua **Application** no **Azion Console**.

:::note
O mTLS só estará disponível caso o serviço esteja ativado. Para ativar, entre em contato com nossa [Equipe de Vendas](https://www.azion.com/pt-br/contato/).
:::

<DocButton kind="secondary" href="/pt-br/documentacao/produtos/guias/secure/mtls/" label="consulte o guia associar um certificado mTLS a um domínio" kind="secondary" size="medium" /> 

## Certificado Digital com suporte para mTLS (Trusted CA)

Para configurar o **mTLS** em sua **Application**, você precisa de um *Digital Certificate* com suporte para **mTLS**, gerado por uma *Autoridade de certificação terceira*. Na Azion, chamamos esse certificado de **Trusted CA**.

Selecione ou adicione um novo *Workload* e certifique-se de que a opção **mTLS** está ativada. Em seguida, selecione o **Trusted CA** adicionado anteriormente.

> Os certificados gratuitos, gerados internamente pela Azion (Azion [SAN]), não têm suporte para mTLS.

Para usar o modo *Enforce* do mTLS, é necessário utilizar a extensão para protocolos TLS, *Server Name Indication (SNI)*.

As conexões sem SNI são conectadas a uma configuração padrão que, no momento do *handshake TLS*, entrega o certificado Azion SAN.

Quando temos requisições sem SNI para um Domain com mTLS no modo *Enforce*, a conexão é interrompida antes que a rota da sua Applications seja resolvida.

> Certifique-se que suas Applications sempre usem SNI nas solicitações.

## Como funciona o mTLS na Azion 

A configuração padrão do **mTLS** bloqueia os acessos cuja identidade do usuário não puder ser verificada.

Se sua aplicação precisa de necessidades de acesso especiais, é necessário configurar uma verificação permissiva (*Permissive mTLS*). A verificação permissiva pode ser configurada na página *Workloads*.

Você também pode alterar e especificar as *header variables* do seu **mTLS** para atender aos requisitos do Open Banking. Isso pode ser feito na página de configuração do **Workload**, dentro do **Azion Console**.

> A lista de variáveis aceitas está disponível na página [Rules Engine para Applications](/pt-br/documentacao/produtos/build/applications/rules-engine/).


## Limites

:::tip
**Aumente limites** <br></br>
Você pode solicitar o aumento dos limites com base no seu plano. Contate o [time de suporte técnico](/pt-br/documentacao/servicos/suporte/) para fazer a solicitação.
:::

### Certificados

Estes são os **limites default** para cada Plano de Serviço:

| Developer | Business | Enterprise | Mission Critical |
| --- | --- | --- | --- |
| 100 | 100 | 100 | 1.000 |

Limites de certificados digitais MTLS Trusted CA:

| Tamanho máximo |
| --- |
| 1.000.000 caracteres |

:::tip
**Aumente limites** <br></br>
Você pode solicitar o aumento dos limites com base no seu plano. Contate o [time de suporte técnico](/pt-br/documentacao/servicos/suporte/) para fazer a solicitação.
:::


---