Como configurar e associar um certificado mTLS a um domínio

O Mutual Transport Layer Security (mTLS) é um protocolo de segurança que permite autenticação e criptografia de duas vias para interações de rede. Ele confirma que tanto o cliente quanto o servidor estão autenticados e têm autorização para comunicação efetiva.

Para configurar o mTLS em suas aplicações, você precisa de um digital certificate com suporte a mTLS assinado por uma autoridade certificadora, ou Certificate Authority (CA). Na Azion, este tipo de certificado é chamado de Trusted CA.


Adicione um Trusted CA e associe a um domínio

  1. Acesse o Azion Console > Digital Certificates.
  2. Clique no botão + Digital Certificate.
  3. Dê um nome fácil de lembrar para o seu certificado.
  4. Selecione a opção Import Trusted CA Certificate no menu suspenso.
  5. No campo Private Certificate, cole o seu certificado, incluindo as tags de início e fim.
  1. Clique no botão Save.

Após adicionar um Trusted CA à sua biblioteca de certificados, você precisa configurar quais domínios devem operar com mTLS.

  1. Acesse o Azion Console > Domains.
  2. Clique no domínio que deseja configurar o mTLS.
  3. Ative o switch Mutual Authentication.
  4. Escolha o modo de verificação que deseja usar.
    • Ao selecionar Enforce (padrão), o mTLS é ativado no domínio de sua edge application e todo o tráfego de entrada estará em conformidade com a autenticação do cliente e do servidor.
    • Ao selecionar Permissive, você deve configurar este modo no Edge Firewall.
  5. Selecione o Trusted CA Certificate que você criou.
  6. Clique no botão Save.

Crie regras específicas para Permissive mTLS

Para configurar um firewall para bloquear o acesso a um domínio usando o modo Permissive do mTLS, você deve usar o Rules Engine para Edge Firewall. O exemplo a seguir descreve um conjunto de regras que bloqueará qualquer tráfego de rede de entrada com o hostname mydomain.com cuja validação do certificado do cliente não seja efetuada, entregando um erro 403 Forbidden.

  1. Acesse o Azion Console > Edge Firewall.
  2. Configure um edge firewall para o domínio mTLS.
  3. Clique na aba Rules Engine.
  4. Clique no botão + Rules Engine.
  5. Dê um nome fácil de lembrar para sua regra.
  6. Na seção Criteria, como variável, selecione Host.
  7. Como operador de comparação, selecione is equal.
  8. Como argumento, insira mydomain.com.
  9. Clique no botão + And para adicionar um novo critério.
  10. Como variável, selecione Client Certificate Validation.
  11. Como operador de comparação, selecione is not equal.
  12. Como argumento, insira true.
  13. Na seção Behavior, selecione Deny (403 Forbidden).
  14. Clique no botão Save.

Especifique variáveis mTLS em cabeçalhos HTTP

Para especificar variáveis mTLS em cabeçalhos HTTP, você deve usar o Rules Engine para Edge Application. O exemplo a seguir descreve um conjunto de regras que adicionará a variável ${ssl_client_escaped_cert} ao cabeçalho da sua aplicação.

Requer:

Você também pode inserir cabeçalhos com outras variáveis da lista de variáveis mTLS disponíveis.

Para testar se os cabeçalhos que você adicionou estão sendo enviados nas requisições, você pode executar o seguinte comando cURL no seu terminal a partir de um diretório que contém os arquivos .pem do seu Trusted CA e sua chave privada:

Terminal window
curl -skv https://mydomain.com/ -H "Pragma: azion-debug-cache" -o /dev/stdout --cert cert.pem --key key.pem
  1. Acesse o Azion Console > Edge Application.
  2. Encontre e clique na aplicação do domínio com mTLS.
  3. Clique na aba Rules Engine.
  4. Clique no botão + Rule.
  5. Dê um nome fácil de lembrar para sua regra.
  6. Selecione Request Phase.
  7. No campo Criteria, insira a variável mTLS desejada. Exemplo: ${ssl_client_escaped_cert}.
  8. Selecione o operador de comparação exists.
  9. Na seção Behavior, selecione o comportamento Add Request Header.
  10. Como argumento, insira Nome-Variavel-Mtls: ${nome_variavel_ssl}, substituindo o nome e a variável pelo nome da variável mTLS que você deseja inserir no cabeçalho da sua aplicação.
    • Exemplo: Escaped-Client-Cert: ${ssl_client_escaped_cert}
  1. Para adicionar outra variável, clique no botão And na seção Criteria e repita as etapas restantes.
  2. Clique no botão Save quando terminar.