# Como ativar o DNSSEC

**Domain Name System Security Extensions (DNSSEC)** fornecem uma camada extra de segurança para verificar a autenticidade e a integridade de uma resposta de endereço IP. A Azion fornece [compatibilidade com DNSSEC](/pt-br/documentacao/produtos/secure/edge-dns/compatibilidade-dnssec/), desde que o registro do seu domínio de nível superior (TLD) suporte o recurso e [sua zona esteja configurada](/pt-br/documentacao/produtos/guias/secure/edge-dns-definir-main-settings/) com registros de recursos relacionados ao DNSSEC no [Edge DNS](/pt-br/documentacao/produtos/guias/secure/adicionar-registros/).

---

## Pré-requisitos

Antes de ativar o DNSSEC, você precisa de um **Personal Token** da Azion para autenticar as chamadas de API.

Para criar um Personal Token:

1. Acesse o [Azion Console](https://console.azion.com).
2. No menu lateral direito, clique em **Personal Tokens**.
3. Clique no botão **Add Personal Token**.
4. Defina o nome do token, o tempo de expiração e, opcionalmente, uma descrição.
5. Clique em **Create Token**.
6. Copie e salve o valor do token gerado — ele será necessário nas próximas etapas.

:::tip
Para facilitar o uso da API da Azion, você pode importar a collection oficial do Postman disponível em [api.azion.com](https://api.azion.com). Substitua a variável `[TOKEN VALUE]` pelo Personal Token gerado.
:::

---

## Ative DNSSEC via API

A ativação do DNSSEC está disponível via [API da Azion](https://api.azion.com/#ea46919a-7130-426d-b38b-dc416b6c4c32):

1. Execute a seguinte requisição `GET` no seu terminal, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/produtos/guias/personal-tokens/) para buscar seu `<zone_id>`:

```bash
curl --request GET \
  --url 'https://api.azion.com/v4/workspace/dns/zones?page_size=100' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer [TOKEN VALUE]'
```

:::tip
Use o parâmetro `page_size=100` para listar até 100 zonas por página. Se você tiver mais zonas, utilize o parâmetro `page` para navegar entre as páginas.
:::

2. Você receberá uma resposta semelhante a esta:

```json
{
  "count": 1,
  "total_pages": 1,
  "page": 1,
  "page_size": 100,
  "next": null,
  "previous": null,
  "results": [
    {
      "domain": "seudominio.com",
      "is_active": true,
      "name": "Uma zona hospedada",
      "id": 1234
    }
  ]
}
```

3. Copie o valor `id` da zona específica na qual você deseja ativar o DNSSEC. Neste exemplo, é `1234`.
4. Execute a seguinte requisição `PATCH` para ativar o DNSSEC na zona e iniciar a geração das chaves criptográficas. Substitua `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/produtos/guias/personal-tokens/) e `{zone_id}` pelo ID coletado no passo anterior:

```bash
curl --request PATCH \
  --url https://api.azion.com/v4/workspace/dns/zones/{zone_id}/dnssec \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "enabled": true
}'
```

5. Você receberá uma resposta semelhante a esta:

```json
{
  "data": {
    "enabled": true,
    "status": "unconfigured",
    "delegation_signer": null
  }
}
```

:::note
O status `unconfigured` indica que o DNSSEC foi ativado na Azion, mas ainda não foi configurado no Registrador de domínios. As chaves criptográficas (`digest` e `key_tag`) são geradas neste momento e estarão disponíveis na próxima requisição.
:::

6. Execute a seguinte requisição `GET` para recuperar os valores de `digest` e `key_tag` gerados. Substitua `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/produtos/guias/personal-tokens/) e `{zone_id}`. Você vai precisar deles para configurar o DNSSEC no seu Registrador de domínios.

```bash
curl --request GET \
  --url https://api.azion.com/v4/workspace/dns/zones/{zone_id}/dnssec \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer [TOKEN VALUE]'
```

7. Você receberá uma resposta semelhante a esta:

```json
{
  "data": {
    "enabled": true,
    "status": "unconfigured",
    "delegation_signer": {
      "algorithm_type": {
        "id": 1,
        "slug": "string"
      },
      "digest": "string",
      "digest_type": {
        "id": 1,
        "slug": "string"
      },
      "key_tag": 1
    }
  }
}
```

:::caution[Atenção]
Sua configuração de DNSSEC NÃO está completa até você terminar o setup utilizando os valores de `digest` e `key_tag` no seu Registrador de domínios.
:::

---

## Configure o DNSSEC no seu Registrador de domínios

Após obter os valores de `digest` e `key_tag` via API, você precisa registrá-los no seu Registrador de domínios para estabelecer a cadeia de confiança.

O exemplo abaixo utiliza o [Registro.br](https://registro.br) como referência, mas o processo é similar em outros registradores.

1. Acesse [registro.br](https://registro.br) e faça login com as credenciais de administração do domínio.
2. Na lista de domínios, clique no domínio no qual deseja ativar o DNSSEC.
3. Expanda a seção **Alterar Servidores DNS**.
4. Clique em **+DNSSEC** e insira os valores de `key_tag` e `digest` obtidos na etapa anterior.
5. Clique em **Salvar Alterações** para aplicar as configurações.

:::note
O tempo de propagação das configurações de DNSSEC pode variar de acordo com o TTL da zona e o tempo de publicação do TLD responsável. Aguarde a nova publicação antes de validar.
:::

---

## Valide a ativação do DNSSEC

Após configurar o DNSSEC no registrador, valide a ativação utilizando os métodos abaixo.

### Via comando dig

Execute o comando abaixo substituindo `<domínio>` pelo domínio ativado:

```bash
dig <domínio> +dnssec
```

No retorno, verifique a presença da entrada `RRSIG`. Sua ausência indica que o DNSSEC ainda não está ativo ou que a propagação ainda não foi concluída.

Para validar a resolução de um registro específico dentro da zona:

```bash
dig <registro>.<domínio> +dnssec
```

O retorno deve apresentar tanto o valor do registro quanto a entrada `RRSIG` correspondente.

### Via ferramenta online

Acesse [https://dnssec-analyzer.verisignlabs.com/](https://dnssec-analyzer.verisignlabs.com/) e insira o domínio ativado. Todas as validações devem retornar com sucesso para confirmar que a cadeia de confiança está estabelecida corretamente.

---

## Rollback

Caso seja necessário desfazer a ativação do DNSSEC, siga os passos abaixo na ordem indicada.

### 1. Remova as informações no Registrador de domínios

1. Acesse o seu Registrador de domínios (por exemplo, [registro.br](https://registro.br)).
2. Navegue até o domínio e expanda a seção **Alterar Servidores DNS**.
3. Remova as informações referentes ao DNSSEC.
4. Clique em **Salvar Alterações** para aplicar as configurações.

### 2. Desative o DNSSEC via API

Após remover as informações no registrador, desative o DNSSEC na Azion:

```bash
curl --request PATCH \
  --url https://api.azion.com/v4/workspace/dns/zones/{zone_id}/dnssec \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "enabled": false
}'
```

:::caution[Atenção]
Sempre remova as informações do DNSSEC no Registrador **antes** de desativar o DNSSEC na Azion. Inverter a ordem pode causar falhas de resolução DNS para o domínio.
:::

---

:::tip
Confira a [documentação da API da Azion](https://api.azion.com/) e a [especificação OpenAPI](https://github.com/aziontech/api-schemas/) para saber mais sobre todos os recursos disponíveis via API.
:::

---