HTTP-01 e o tipo de desafio ACME mais comum para obter um certificado SSL. A CA verifica que você controla um domínio buscando um arquivo especifico do seu servidor web pela porta HTTP 80. E mais simples que o DNS-01, mas não pode ser usado para certificados wildcard.
Como funciona
- O Let’s Encrypt fornece um token (uma string aleatoria)
- Você cria um arquivo em
http://seudominio.com/.well-known/acme-challenge/{token} - O conteúdo do arquivo e a autorização de chave — o token combinado com a impressao digital da sua chave de conta ACME
- O Let’s Encrypt busca essa URL a partir da internet pública
- Se o conteúdo corresponder, o desafio e aprovado e seu certificado e emitido
Com o GetHTTPS, os passos 1 e 3 sao tratados automaticamente — você só precisa colocar o arquivo no seu servidor com os valores mostrados na tela.
Como colocar o arquivo de desafio
Via SSH (Linux/Nginx/Apache)
# Criar o diretorio
mkdir -p /var/www/html/.well-known/acme-challenge/
# Criar o arquivo com os valores exatos do GetHTTPS
echo "AUTORIZACAO_DE_CHAVE_DO_GETHTTPS" > /var/www/html/.well-known/acme-challenge/TOKEN_DO_GETHTTPS
# Verificar se esta acessível
curl http://seudominio.com/.well-known/acme-challenge/TOKEN_DO_GETHTTPS
Via cPanel File Manager
- Navegue até
public_html - Crie a pasta
.well-known→ dentro dela, crie a pastaacme-challenge - Crie um novo arquivo com o nome do valor do token
- Cole a autorização de chave como conteúdo do arquivo
- Certifique-se de que as permissões sao 644 (legivel pelo servidor web)
Via FTP
- Conecte a raiz do seu site
- Crie o caminho de diretorio
.well-known/acme-challenge/ - Faça upload de um arquivo de texto com o nome do token, contendo a autorização de chave
Configuração do servidor
Alguns servidores web precisam de configuração para servir arquivos de .well-known:
Nginx
# Adicione ao seu bloco server se .well-known retornar 404
location /.well-known/acme-challenge/ {
root /var/www/html;
allow all;
}
Apache
O Apache geralmente serve .well-known por padrão. Se não:
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/
<Directory "/var/www/html/.well-known/acme-challenge/">
AllowOverride None
Options None
Require all granted
</Directory>
Node.js / Express
app.use('/.well-known/acme-challenge', express.static('challenges'));
Requisitos
- O domínio deve resolver para um endereco IP público do seu servidor
- A porta 80 deve estar aberta — o Let’s Encrypt sempre válida via HTTP, não HTTPS
- A resposta deve retornar HTTP 200 OK
- Sem redirecionamentos cross-domain — redirecionamentos HTTP→HTTPS no mesmo domínio sao aceitos
- O arquivo deve ser acessível sem autenticação (sem Basic Auth, sem tela de login)
Quando usar HTTP-01
| Cenario | HTTP-01? |
|---|---|
| Certificado de domínio único | ✅ Sim — opcao mais simples |
| Certificado domínio + www | ✅ Sim — um desafio por nome |
Certificado wildcard (*.example.com) | ❌ Não — use DNS-01 |
| Porta 80 bloqueada | ❌ Não — use DNS-01 |
| Atras de proxy Cloudflare | ⚠️ Pode precisar desativar proxy (nuvem cinza) primeiro |
| Sem acesso ao servidor | ❌ Não — use DNS-01 (só precisa de acesso DNS) |
HTTP-01 vs DNS-01
| HTTP-01 | DNS-01 | |
|---|---|---|
| O que você faz | Coloca um arquivo no servidor | Adiciona um registro TXT no DNS |
| Acesso necessário | Sistema de arquivos do servidor web | Configurações DNS do domínio |
| Requisito de porta | Porta 80 aberta | Nenhum |
| Suporte a wildcard | ❌ | ✅ |
| Velocidade | Instantaneo (se o arquivo estiver acessível) | 1-15 min (propagação DNS) |
| Funciona atras de CDN | ⚠️ Pode precisar bypass do CDN | ✅ Sempre funciona |
| Melhor para | Maioria dos certs de domínio único | Wildcards, sem acesso ao servidor, configurações com CDN |
Solução de problemas
Arquivo de desafio retorna 404
- Verifique o caminho exato — deve ser
/.well-known/acme-challenge/TOKENsem barras extras - Verifique permissões do arquivo — chmod 644
- Nginx: Sua configuração pode bloquear dotfiles. Adicione o bloco
locationmostrado acima - cPanel: O gerenciador de arquivos pode ocultar
.well-known— ative “Mostrar Arquivos Ocultos”
Desafio falha mesmo com arquivo acessível
- Verifique de fora da sua rede:
curl http://seudominio.com/.well-known/acme-challenge/TOKENde outra maquina ou use uma ferramenta online - DNS pode apontar para outro servidor — verifique se
dig +short seudominio.comretorna o IP do seu servidor - Proxy Cloudflare: Temporariamente mude para DNS-only (nuvem cinza) durante a válidação
Porta 80 bloqueada
Alguns hosts ou firewalls bloqueiam a porta 80. Opções:
- Abra a porta 80 (mesmo que temporariamente para válidação)
- Mude para desafio DNS-01 — não precisa da porta 80
- Peca ao seu provedor de hospedagem para permitir
.well-knownpelo proxy
Erro “too many requests”
Você atingiu os limites de taxa do Let’s Encrypt. Aguarde e tente novamente. A pre-verificação do GetHTTPS ajuda a evitar tentativas desperdicadas verificando se o arquivo esta acessível antes de enviar.
Perguntas frequentes
Posso deletar o arquivo de desafio após obter o certificado?
Sim. O arquivo só é necessário durante a válidação. Após a emissão do certificado, delete o diretorio .well-known/acme-challenge/ e seu conteúdo. Você criara novos arquivos quando renovar.
O arquivo precisa ser servido via HTTPS?
Não. O Let’s Encrypt sempre válida HTTP-01 via HTTP simples (porta 80), mesmo se seu site suportar HTTPS. Redirecionamentos HTTP→HTTPS no mesmo domínio sao seguidos, mas a requisição inicial e sempre HTTP.
Posso usar HTTP-01 para múltiplos domínios em um certificado?
Sim. Cada domínio no certificado precisa de seu próprio arquivo de desafio. Se você esta obtendo um cert para example.com e www.example.com, você coloca dois arquivos — um token por domínio. O GetHTTPS os trata sequencialmente.
O que e a “pre-verificação” no GetHTTPS?
Antes de enviar ao Let’s Encrypt, o GetHTTPS verifica se seu arquivo de desafio esta acessível a partir da internet pública (via DNS-over-HTTPS do Google). Isso detecta erros de configuração antes de gastar uma tentativa de limite de taxa — um recurso que outras ferramentas baseadas em navegador não possuem.