# Adicione um registro TXT para Let's Encrypt

import DocButton from '~/components/webkit/DocButton.vue';
import LetsEncryptExpiration from '~/includes/snippets/LetsEncryptExpiration/pt/snippet.mdx'
import Tabs from '~/components/tabs/Tabs'
import Code from '~/components/Code/Code.astro'


Ao criar o certificado Let's Encrypt através do método [DNS challenge](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge), é necessário adicionar um registro TXT específico à sua zona DNS para garantir a validação do certificado. Se sua [zona](/pt-br/documentacao/produtos/guias/secure/edge-dns-definir-main-settings/) estiver hospedada no Edge DNS, siga as etapas descritas a seguir.

<LetsEncryptExpiration />

---

:::note
Este guia abrange um cenário em que você deseja configurar o registro TXT de DNS necessário para um certificado Let's Encrypt™ por meio da validação do desafio DNS-01.

Se você escolheu o recurso **Domain** da Azion para criar um certificado Let's Encrypt diretamente do Azion Console para uma zona totalmente configurada no **Edge DNS**, todo o processo é automatizado, incluindo o tratamento do registro TXT. Saiba mais no [guia Let's Encrypt](/pt-br/documentacao/produtos/guias/como-gerar-um-certificado-lets-encrypt/).
:::

<Tabs client:visible>
    <Fragment slot="tab.console">Console</Fragment>
    <Fragment slot="tab.api">API</Fragment>

<Fragment slot="panel.console">
1. Siga as etapas gerais descritas no guia [Como adicionar registros em uma zona de DNS](/pt-br/documentacao/produtos/guias/secure/adicionar-registros/).
2. Em **Name**, forneça o nome do novo registro exigido pela solicitação de certificação Let's Encrypt, como a ferramenta Certbot, em formato de string. Limitado a *100 caracteres*. Exemplo: `_acme-challenge.<SEU_DOMINIO>`.
3. No menu suspenso **Record Type**, selecione **TXT**.
4. Em **Value**, insira o valor do desafio ACME fornecido pelo provedor Let's Encrypt. Exemplo: `ekgH9kW242Vbt99P27agtr07I09iLsiZZx`.
5. Em **TTL (seconds)**, escolha o tempo, em segundos, que a resposta pode ser armazenada em um servidor de resolução. Valor máximo: `2147483647`.
6. Clique no botão **Save**.
</Fragment>

<Fragment slot="panel.api">
1. Execute a seguinte requisição `GET` em seu terminal, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/produtos/guias/personal-tokens/) para recuperar seu `<hosted_zone_id>`:

<Code lang="bash" code={`
curl --request GET \
  --url https://api.azion.com/v4/edge_dns/zones \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]'
`} />


2. Você receberá uma resposta com todas as suas zonas existentes. Copie o valor do `<id>` que você deseja usar.
3. Execute a seguinte requisição `POST`, substituindo `[TOKEN VALUE]` pelo seu personal token e o valor `<hosted_zone_id>` que você copiou:

<Code lang="bash" code={`
curl --request POST \
  --url https://api.azion.com/v4/edge_dns/zones/<zone_id>/records \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "TXT",
    "name": "_acme-challenge",
    "rdata": ["ekgH9kW242Vbt99P27agtr07I09iLsiZZx"]
  }'
`} />

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

<Code lang="json" code={`
{
  "results": {
    "answers_list": [
      "ekgH9kW242Vbt99P27agtr07I09iLsiZZx"
    ],
    "zone_id": 1234,
    "record_type": "TXT",
    "ttl": 20,
    "policy": "simple",
    "entry": "_acme-challenge.<YOUR_DOMAIN>",
    "id": 56506,
    "description": ""
  },
  "schema_version": 3
}
`} />

Aguarde alguns minutos para que as alterações se propaguem e seus registros sejam criados na zona hospedada que você escolheu.

:::tip
Consulte a [documentação da API da Azion](https://api.azion.com/) para saber mais sobre o que a API da Azion pode oferecer.
:::
</Fragment>

</Tabs>
---