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
Seção intitulada Adicione um Trusted CA e associe a um dominioVia Azion Console
Seção intitulada Via Azion Console- Acesse o Azion Console > Digital Certificates.
- Clique no botão Add Certificate.
- Selecione a opção Trusted CA Certificate no menu suspenso.
- Dê um nome fácil de lembrar para o seu certificado.
- No campo Certificate, cole o seu certificado, incluindo as tags de início e fim.
- 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.
- Acesse o Azion Console > Domains.
- Clique no domínio que deseja configurar o mTLS.
- Ative o switch Enable Mutual Authentication (mTLS).
- 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.
- Selecione o Trusted CA que você criou.
- Clique no botão Salvar.
Via API
Seção intitulada Via API- Execute a seguinte requisição
POST
no seu terminal, substituindo[TOKEN VALUE]
pelo seu personal token e o certificado na propriedadecertificate
:
Chave | Descrição |
---|---|
name | Nome da instância do certificado |
certificate | String que contém o valor do certificado. Deve incluir as tags de início e fim. As quebras de linha devem ser substituídas por sequências de escape (\n ) |
certificate_type | Enum que indica o tipo do certificado. Certificados do tipo Trusted CA são atribuídos o valor trusted_ca_certificate |
- Você receberá uma resposta semelhante a esta:
- Copie o valor
digital_certificate_id
. Ele será usado para associar o certificado a um domínio. - Execute a seguinte requisição
POST
no seu terminal, substituindo[TOKEN VALUE]
pelo seu personal token, a<edge_application_id>
por um ID de edge application, e<digital_certificate_id>
pelo ID do Trusted CA que você criou:
Chave | Descrição |
---|---|
name | Nome da instância do domínio |
cnames | Aceita um array de strings contendo os CNAMEs para o domínio como valores |
digital_certificate_id | Enum que, quando null , seleciona o certificado Azion SAN |
edge_application_id | O ID da aplicação vinculada ao domínio |
is_mtls_enabled | Booleano que, quando true , ativa a verificação mTLS para o domínio |
mtls_verification | Enum que define o modo de verificação. Pode ser enforce ou permissive |
mtls_trusted_ca_certificate_id | O ID do Trusted CA |
- Você receberá uma resposta semelhante a esta:
- Aguarde o tempo de propagação. Seu domínio agora deve estar usando o protocolo mTLS.
Crie regras específicas para Permissive mTLS
Seção intitulada Crie regras especificas para Permissive mTLSPara 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
.
Via Azion Console
Seção intitulada Via Azion Console- Acesse o Azion Console > Edge Firewall.
- Configure um edge firewall para o domínio mTLS.
- Clique na aba Rules Engine do Edge Firewall.
- Clique no botão New Rule.
- Dê um nome fácil de lembrar para sua regra.
- Na seção Criteria, como variável, selecione Hostname.
- Como operador de comparação, selecione is equal to.
- Como argumento, insira
mydomain.com
. - Clique no botão + And para adicionar um novo critério.
- Como variável, selecione Client Certificate Validation.
- Como operador de comparação, selecione is not equal to.
- Como argumento, insira
true
. - Na seção Behavior, selecione Deny (403 Forbidden).
- Clique no botão Save.
Via API
Seção intitulada Via API- Execute a seguinte requisição
POST
no seu terminal, substituindo[TOKEN VALUE]
pelo seu personal token e o<edge_firewall_id>
pelo ID do firewall associado ao domínio mTLS:
Chave | Descrição |
---|---|
name | Nome da regra |
description | Descrição da regra |
behaviors | Array que armazena objetos que definem comportamentos |
criteria | Array que armazena objetos que definem critérios |
- Você receberá uma resposta semelhante a esta:
Especifique variáveis mTLS em cabeçalhos HTTP
Seção intitulada Especifique variaveis mTLS em cabecalhos HTTPPara 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:
Via Azion Console
Seção intitulada Via Azion Console- Acesse o Azion Console > Edge Application.
- Encontre e clique na aplicação do domínio com mTLS.
- Clique na aba Rules Engine.
- Clique no botão New Rule e selecione Request Phase.
- Dê um nome fácil de lembrar para sua regra.
- No campo Criteria, insira a variável mTLS desejada. Exemplo:
${ssl_client_escaped_cert}
. - Selecione o operador de comparação exists.
- Na seção Behavior, selecione o comportamento Add Request Header.
- 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}
- Exemplo:
- Para adicionar outra variável, clique no botão And na seção Criteria e repita as etapas restantes.
- Clique no botão Save quando terminar.
Via API
Seção intitulada Via API- Execute a seguinte requisição
POST
no seu terminal, substituindo[TOKEN VALUE]
pelo seu personal token e<edge_application_id>
com o ID da edge application associada ao domínio com mTLS:
- Você receberá uma resposta semelhante a esta:
- Repita os passos anteriores para cada variável mTLS necessária nos cabeçalhos.
Contributors