Como configurar mTLS

Mutual Transport Layer Security (mTLS) é um protocolo de criptografia baseado no Transport Layer Security (TLS), que valida o certificado digital de ambas as pontas de uma requisição.

Para configurar mTLS nas suas aplicações é necessário ativar o serviço através da nossa equipe de Vendas, além de possuir um certificado digital com suporte para mTLS, fornecido por uma autoridade certificadora terceira. Na Azion, chamamos esse certificado de Trusted Certificate (Trusted CA).

Mais informações sobre requisitos, certificados digitais, Trusted CA e como mTLS funciona na Azion estão disponíveis na página Suporte para mTLS.


Adicione um Trusted CA à sua biblioteca de Digital Certificates

Seção intitulada Adicione um Trusted CA a sua biblioteca de Digital Certificates

Com seu Trusted CA criado, é necessário adicioná-lo à sua biblioteca de Digital Certificates, em Edge Libraries:

  1. Acesse o Azion Console > Digital Certificates, na seção Edge Libraries.
  2. Clique no botão + Digital Certificate.
  3. Na página de cadastro de novos certificados, defina um nome de identificação para este certificado no campo Name.
  4. Na seção Import or Request Certificate, selecione a opção Import a Trusted CA certificate.
  5. Em Private Certificate, insira o conteúdo que representa seu Trusted CA.
  • O arquivo do certificado precisa ser do tipo .pem Privacy Enhanced Mail (PEM). Exemplo: certificado.pem.
  1. Clique no botão Save para prosseguir.

Você será redirecionado para a página Digital Certificates, onde estarão listados todos os seus certificados, incluindo este recém-adicionado.


Após adicionar um Trusted CA à sua biblioteca de certificados, é necessário configurar quais domínios devem operar com mTLS.

  1. Ainda no Console, selecione Products menu > Domains.
  2. Clique no domínio referente a aplicação que gostaria de configurar mTLS.
  3. Ative o switch Mutual Authentication Settings.
  4. Escolha qual o modo de verificação deseja utilizar. Pode ser Enforce ou Permissive.
  5. Clique no botão Save para prosseguir.

Adicione regras específicas para uso do Permissive mTLS

Seção intitulada Adicione regras especificas para uso do Permissive mTLS

Para configurar a operação do modo Permissive:

  1. Ainda no Console, selecione Products menu > Edge Firewall.
  2. Selecione o edge firewall que deseja usar ou crie um novo edge firewall clicando no botão + Edge Firewall.
  3. Em Domains, selecione o domínio da sua aplicação e cliquei no botão >, para mandar o domínio escolhido para Selected.
  4. Clique em Save.
  5. Clique na aba Rules Engine.
  6. Clique no botão + Rule.
  7. Escolha um nome identificador para esta regra.
  8. Defina os Criteria e Behaviors específicos para sua necessidade.
  • Este exemplo segue a lógica:
    • Criteria: If Host is equal yourDomain.com + And Client Certificate Validation is not equal true.
    • Behaviors: Then Deny (403 Forbidden).
  1. Certifique-se de que o switch Active está ativado.
  2. Clique no botão Save.

Sem suporte a mTLS ativado na sua conta da Azion, a opção Client Certificate Validation no Criteria não irá aparecer.


Especifique variáveis do mTLS no Header da aplicação

Seção intitulada Especifique variaveis do mTLS no Header da aplicacao

Caso sua aplicação faça parte do modelo Open Banking, será necessário especificar as variáveis ${ssl_client_escaped_cert} e ${ssl_client_s_dn_parsed} no header da sua aplicação. Você também pode inserir outras variáveis do mTLS.

consulte a lista de variáveis disponíveis

Para adicionar uma variável no header da sua aplicação, siga os passos:

  1. No Console, selecione Products Menu > Edge Application.
  2. Encontre e clique na aplicação com mTLS ativado.
  3. Clique na aba Rules Engine.
  4. Clique no botão + Rule.
  5. Defina um nome identificador para esta rule.
  6. Selecione Request Phase.
  7. No campo Critéria, troque o operador is equal para exists.
  8. No campo Behaviors selecione a opção Add Request Header e adicione a variável que deseja inserir no header da sua aplicação.
  • O uso do prefixo X- no header-name de variáveis HTTP customizadas é desencorajado pela entidade responsável pelo desenvolvimento do HTTP, Internet Engineering Task Force (IETF), desde 2012 (RFC 6648). A IETF recomenda o uso de um header-name comum, que indique o uso real da variável, mas que não conflite com as variáveis padrões.
  • Para adicionar mais uma variável, clique no + e volte para o passo 7.
  1. Certifique-se que o switch Active está ativado.
  2. Clique no botão Save.

Uma das formas de testar a inserção dessas variáveis é com a ferramenta curl. A partir de um diretório contendo seu Trusted CA e sua respectiva chave em um arquivos .pem. Exemplo: cert.pem e key.pem, abra o terminal e rode curl -skv https://<yourDomain.com>/ -H "pragma:azion-debug-cache" -o /dev/stdout --cert cert.pem --key key.pem. Você deve encontrar header-name:value das variáveis adicionadas na resposta.


Contribuidores