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 do nosso Canal 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 e clique no Products Menu, indicado pelo ícone ☰. Busque pela categoria Edge Libraries e clique em Digital Certificates.
  2. Clique no botão Add certificate e selecione a opção Trusted CA Certificate no menu dropdown.
  3. Na página de cadastro de novos certificados, defina um nome de identificação para este certificado no campo “Digital Certificate Name”.
  4. Insira em Certificate o conteúdo que representa seu Trusted CA.

    Lembrando que o arquivo do certificado precisa ser do tipo .pem Privacy Enhanced Mail (PEM). Exemplo: certificado.pem.

  5. 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. Acesse a página Domains, encontrada no Products Menu (☰).
  2. Clique no domínio referente a aplicação que gostaria de configurar mTLS.
  3. Ative o switch Enable Mutual Authentication (mTLS).
  4. Escolha qual o modo de verificação deseja utilizar. Pode ser Enforce ou Permissive.
  5. Selecione o Trusted CA Certificate, adicionado no passo anterior, no menu dropdown.
  6. Clique no botão Save para prosseguir.

Ao selecionar a verificação Enforce (padrão), o mTLS estará ativado em sua Edge Application e todo tráfego que receber cumprirá a autenticação de cliente e de servidor.

No entanto, se a necessidade é testar ou acessar sua aplicação a partir de condições específicas, escolha a verificação Permissive. O ajuste do modo Permissive é feito através do Rules Engine do Edge Firewall e os passos estão descritos na seção abaixo.

É importante lembrar que a má configuração do modo de verificação Permissive pode resultar em incidentes de segurança.

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. Acesse o Products Menu (☰).
  2. Na categoria SECURE, clique em Edge Firewall.
  3. Se não houver um edge firewall configurado, clique em Add Rule Set e defina um nome de identificação.
  4. Em Domain Settings, selecione o domínio da sua aplicação e cliquei no botão >, para mandar o domínio escolhido para Chosen Domains.
  5. Clique em Save.
  6. Com o Rule Set criado, clique na aba Rules Engine do Edge Firewall.
  7. Clique no botão New Rule.
  8. Escolha um nome identificador para esta regra em Rule Name.
  9. Defina os Criterias e Behaviors específicos para sua necessidade.

    Para este exemplo, seguiremos com a lógica: Criteria: If: Hostname is equal to yourDomain.com + And Client Certificate Validation is not equal to true. Behaviors: Then Deny (403 Forbidden).

  10. Certifique-se de que o switch Active está ativado.
  11. Clique no botão Save.

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

Nessa lógica de exemplo, o edge firewall criado irá bloquear (Error 403 Forbidden) qualquer tráfego de rede de entrada com um hostname igual a yourDomain.com, mas que a validação do certificado do cliente não for verdadeira.

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. Confira a lista de variáveis disponíveis e suas descrições.

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

  1. Dentro do Azion Console, abra o Products Menu (☰)

  2. Clique em Edge Application.

  3. Encontre e clique na aplicação com mTLS ativado.

  4. Dentro das configurações da sua Edge Application, clique na aba Rules Engine.

  5. Clique no botão New Rule e selecione Request Phase.

  6. Defina um nome identificador para esta Rule.

  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.

    Dica: 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.

  9. Certifique-se que o switch Active está ativado.

  10. Para adicionar mais uma variável, clique no + e volte para o passo 7.

  11. 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