Automação do Let's Encrypt e do Protocolo ACME
Automatize a emissão e a renovação de certificados usando o protocolo ACME com o Certbot e outros clientes.
Automação do Let's Encrypt e do Protocolo ACME é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.
Introdução ao Let's Encrypt
Let's Encrypt é uma autoridade certificadora gratuita, automatizada e aberta, operada pelo Internet Security Research Group (ISRG) e lançada em beta público em dezembro de 2015. Ela já emitiu mais de 3 bilhões de certificados e aumentou significativamente a adoção do HTTPS em toda a Internet ao eliminar o custo e a complexidade da obtenção de certificados TLS confiáveis publicamente.
Visão geral do protocolo ACME
O protocolo Automated Certificate Management Environment (ACME), padronizado como RFC 8555 em 2019, define como os clientes comprovam automaticamente a propriedade de um domínio e recebem certificados de autoridades certificadoras. O ACME substitui os processos manuais de validação de domínio por uma troca automatizada verificada criptograficamente, permitindo o gerenciamento automatizado do ciclo de vida dos certificados sem intervenção manual.
Desafio HTTP-01
O desafio HTTP-01 valida a propriedade de um domínio exigindo que o cliente ACME coloque um arquivo de token específico em "http://DOMAIN/.well-known/acme-challenge/TOKEN". A autoridade certificadora acessa essa URL para verificar o token. O HTTP-01 é simples de implementar, mas exige que a porta 80 esteja acessível e não pode ser usado para certificados curinga.
Desafio DNS-01
O desafio DNS-01 valida a propriedade de um domínio exigindo que o cliente ACME crie um registro TXT de DNS em "_acme-challenge.DOMAIN" com um valor específico. A autoridade certificadora consulta o DNS para verificar o registro. O DNS-01 é o único tipo de desafio compatível com a emissão de certificados curinga ("*.example.com") e funciona mesmo quando os servidores da web estão atrás de firewalls.
Desafio TLS-ALPN-01
O desafio TLS-ALPN-01 valida a propriedade de um domínio na camada TLS usando um identificador de protocolo ALPN personalizado, "acme-tls/1". O cliente ACME disponibiliza temporariamente um certificado autoassinado com o token do desafio em uma extensão especial na porta 443. Esse desafio funciona sem um servidor da web em execução e é compatível com ambientes com balanceamento de carga.
Cliente de referência Certbot
Certbot é o cliente ACME de referência da Electronic Frontier Foundation para o Let's Encrypt. Ele automatiza todo o ciclo de vida do certificado: validação do domínio, emissão do certificado e renovação automática. O Certbot inclui plug-ins para Apache e nginx que configuram automaticamente as definições de TLS. Instale-o por meio de "snap install --classic certbot" nas distribuições modernas do Linux.
Clientes ACME alternativos
Existem muitos clientes ACME além do Certbot, voltados para diferentes casos de uso. acme.sh é um cliente ACME implementado como um script puro de shell, amplamente usado em ambientes leves. O servidor da web Caddy tem ACME integrado e renova os certificados automaticamente. O Traefik, usado em ambientes de contêineres, gerencia o ACME por meio da configuração certificatesResolvers para cargas de trabalho conteinerizadas.
Automação da renovação de certificados
Os certificados do Let's Encrypt têm, por definição, um período de validade de 90 dias, incentivando a automação e reduzindo o período de exposição de chaves privadas comprometidas. O Certbot instala um temporizador do systemd ou uma tarefa do cron que executa "certbot renew" duas vezes ao dia, renovando qualquer certificado que expire nos próximos 30 dias. A renovação manual é um antipadrão que causa indisponibilidade.
Limites de taxa do Let's Encrypt
O Let's Encrypt aplica limites de taxa para evitar abusos. Os principais limites são 50 certificados por domínio registrado por semana e 5 certificados duplicados por semana. As tentativas de validação malsucedidas — 5 por nome de host por hora — também estão sujeitas a limites de taxa. Durante o desenvolvimento, o ambiente de testes do Let's Encrypt permite a emissão ilimitada de certificados usando uma autoridade certificadora de teste que não é confiável publicamente.
Certificados multidomínio e curinga
Um único certificado ACME pode abranger vários domínios (Nomes alternativos do sujeito). "certbot --domains example.com,www.example.com,api.example.com" emite um certificado com três SANs. Os certificados curinga ("*.example.com") exigem validação DNS-01 e abrangem todos os subdomínios de um único nível. Os curingas não abrangem o domínio raiz (example.com) propriamente dito, sendo necessário um SAN adicional.
ACME para PKI interna
O protocolo ACME não se limita ao Let's Encrypt. Autoridades certificadoras internas, como Step-CA (smallstep), EJBCA e HashiCorp Vault, podem expor pontos de acesso ACME para a automação de certificados internos. Isso permite aplicar à infraestrutura mTLS interna e aos serviços privados o mesmo gerenciamento automatizado do ciclo de vida dos certificados usado em serviços voltados ao público.
Verificação dos desafios do ACME
Qual tipo de desafio ACME é necessário para emitir um certificado curinga, como "*.example.com"?
Recapitulação da lição: Let's Encrypt e ACME
O Let's Encrypt fornece certificados gratuitos por meio do protocolo ACME (RFC 8555). Os desafios HTTP-01 funcionam para certificados que não são curingas na porta 80. O DNS-01 permite certificados curinga ao comprovar o controle da zona DNS. O TLS-ALPN-01 funciona sem um servidor da web. Certbot e acme.sh automatizam todo o ciclo de vida. Certificados de 90 dias exigem automação. Os limites de taxa tornam necessário usar o ambiente de testes durante os testes.
Perguntas Frequentes
A aula “Automação do Let's Encrypt e do Protocolo ACME” é grátis?
Sim — o texto completo de “Automação do Let's Encrypt e do Protocolo ACME” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.
O que vou aprender em “Automação do Let's Encrypt e do Protocolo ACME”?
Automatize a emissão e a renovação de certificados usando o protocolo ACME com o Certbot e outros clientes. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cryptology Academy?
Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Automação do Let's Encrypt e do Protocolo ACME”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cryptology Academy?
Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos da Linha de Comando do OpenSSL
- Criação e Gerenciamento de Cadeias de Certificados
- OCSP Stapling e Transparência de Certificados
- Automação do Let's Encrypt e do Protocolo ACME