# Calculadora de TXT dns-01 do ACME

> Calcule o registro TXT de um desafio dns-01 do ACME, a partir do token e da chave da conta.

- Tool: https://ronutz.com/pt-BR/tools/acme-dns01
- Family: Certificados e PKI

---

## O que faz

Calcula o registro TXT exato que você publica para passar em um desafio dns-01 do ACME. Cole o token do desafio e a chave da sua conta ACME, como um JWK ou como seu thumbprint, e a ferramenta retorna o nome do registro `_acme-challenge`, o valor a colocar no registro TXT e os valores intermediários (a autorização de chave e o thumbprint) dos quais ele foi derivado. Tudo roda no seu navegador usando o SHA-256 nativo do Web Crypto; sua chave nunca sai da página, e apenas seus membros públicos são usados.

## Por que o dns-01 existe

O ACME (RFC 8555) automatiza a emissão de certificados desafiando você a provar o controle de um domínio. O desafio dns-01 faz isso por meio do DNS: você publica um registro TXT específico sob o domínio, e a CA o consulta. Ao contrário do http-01, o dns-01 não precisa de nenhuma conexão de entrada até o seu servidor, então funciona atrás de um firewall ou balanceador de carga, e é o único tipo de desafio que pode validar um nome curinga (wildcard).

## O cálculo

O valor do registro não é arbitrário; a CA o recalcula a partir da chave da sua conta, o que é justamente o que amarra o desafio a você. A cadeia tem três passos. Primeiro, calcula-se o thumbprint SHA-256 da chave pública da sua conta na forma canônica definida pela RFC 7638, codificado em base64url. Segundo, a autorização de chave é formada juntando o token e esse thumbprint com um ponto: `token.thumbprint`. Terceiro, o valor do registro TXT é o base64url do digest SHA-256 da autorização de chave. O registro é publicado em `_acme-challenge.<domínio>`; um curinga como `*.example.com` é validado sob `_acme-challenge.example.com`.

## Apenas sua chave pública é usada

O thumbprint da RFC 7638 é calculado somente sobre os membros públicos obrigatórios da chave: para uma chave EC, a curva e as coordenadas x e y; para uma chave RSA, o módulo e o expoente. Sua chave privada nunca é necessária para calcular o registro, então você deve colar apenas o JWK público. Se uma chave completa for colada, seus campos privados são ignorados e nunca exibidos.

## Usando

Informe o token do desafio e a chave da sua conta e, opcionalmente, o domínio para ver o nome completo do registro. Publique o valor retornado como um registro TXT em `_acme-challenge.<domínio>`, aguarde a propagação e deixe seu cliente ACME continuar. O mesmo token e a mesma chave sempre produzem o mesmo valor, então você pode conferir o que seu cliente está publicando contra o que esta ferramenta calcula.

## Standards and references

- [RFC 8555 — Automatic Certificate Management Environment (ACME)](https://www.rfc-editor.org/rfc/rfc8555) - the ACME protocol; key authorization (§8.1) and dns-01 (§8.4)
- [RFC 7638 — JSON Web Key (JWK) Thumbprint](https://www.rfc-editor.org/rfc/rfc7638) - the SHA-256 JWK thumbprint and its canonical member ordering
- [RFC 4648 — The Base16, Base32, and Base64 Data Encodings](https://www.rfc-editor.org/rfc/rfc4648) - base64url (§5), the encoding used for the token, thumbprint, and TXT value

## Related reading

- [ACME no BIG-IP: dos scripts do DevCentral a um cliente nativo](https://ronutz.com/pt-BR/learn/bigip-acme-certificate-automation.md): Como funciona a automação de certificados Let's Encrypt e outros ACME no F5 BIG-IP: o cliente ACMEv2 nativo introduzido no BIG-IP 21.1.0 (provisionamento, renovação e implantação para qualquer CA ACMEv2), as soluções comunitárias baseadas em dehydrated que vieram antes, o perfil centralizado de gerenciamento de CA Let's Encrypt do BIG-IQ, e onde os conceitos e limites de emissão ACME compartilhados se encaixam.
- [ACME no FortiGate: um cliente embutido para o certificado do próprio equipamento](https://ronutz.com/pt-BR/learn/fortigate-acme-certificate-automation.md): Como o suporte ACME nativo do FortiOS obtém e renova um certificado Let's Encrypt para o próprio FortiGate: os requisitos de IP público e FQDN, a restrição de SAN de nome único, os desafios TLS-ALPN-01 e HTTP-01 (e quais versões do FortiOS os suportam), a configuração via GUI e CLI, e como isso difere do cliente nativo do BIG-IP.
- [ACME: como os certificados se emitem e se renovam sozinhos](https://ronutz.com/pt-BR/learn/acme-protocol.md): Como o protocolo ACME automatiza a emissão de certificados de ponta a ponta: a conta, o pedido, os três tipos de desafio, o registro dns-01 que você publica e a etapa de finalizar e baixar que produz o certificado.
- [Let's Encrypt: a CA gratuita e seus limites de emissão](https://ronutz.com/pt-BR/learn/lets-encrypt.md): O que é a Let's Encrypt, por que seus certificados são de vida curta e como seus limites de emissão realmente funcionam: os limites por domínio registrado e por conta, os limites por conjunto exato e por falha de autorização, e por que as renovações por ARI são isentas de todos eles.
- [Sufixos públicos e o domínio registrado (eTLD+1)](https://ronutz.com/pt-BR/learn/public-suffix.md): O que são um sufixo público (eTLD) e um domínio registrado (eTLD+1), por que você não pode calculá-los pegando os dois últimos rótulos, como o algoritmo da Public Suffix List os resolve, e onde a fronteira importa: limites de emissão de certificados, cookies e same-site.
