TLS-ALPN-01 Challenge
O TLS-ALPN-01 Challenge valida o controle do domínio através de um handshake TLS na porta 443, útil quando a porta 80 está bloqueada.
Como funciona?
Passo a passo:
- Let's Encrypt gera um token único
- Cliente ACME cria certificado autoassinado temporário com o token
- Servidor responde na porta 443 com protocolo ALPN
acme-tls/1 - Let's Encrypt verifica o token via extensão do certificado
- Certificado real é emitido após validação
Quando usar TLS-ALPN-01?
| Cenário | Por que usar TLS-ALPN-01? |
|---|---|
| Porta 80 bloqueada | Firewall ou ISP bloqueia HTTP |
| Apenas HTTPS | Servidor só aceita conexões TLS |
| Sem acesso ao DNS | Não pode criar registros TXT |
Requisitos
- Porta 443 acessível publicamente
- Servidor capaz de responder com protocolo ALPN
acme-tls/1 - Suporte do cliente ACME ao TLS-ALPN-01
Usando com Certbot
O Certbot não suporta TLS-ALPN-01 nativamente. Use alternativas:
Caddy (suporte nativo)
O Caddy tem suporte integrado e escolhe automaticamente o melhor método:
# Caddyfile - HTTPS automático
domain.com {
reverse_proxy localhost:3000
}
acme.sh com standalone TLS
# Standalone na porta 443
acme.sh --issue --alpn -d domain.com
# Com servidor web rodando (requer parar temporariamente)
acme.sh --issue --alpn --standalone -d domain.com
Traefik
O Traefik suporta TLS-ALPN-01 nativamente:
# traefik.yml
certificatesResolvers:
letsencrypt:
acme:
email: [email protected]
storage: acme.json
tlsChallenge: {} # Usa TLS-ALPN-01
Limitações
O TLS-ALPN-01 NÃO suporta:
- Certificados wildcard (
*.domain.com) - Múltiplos domínios em um único challenge
Para esses casos, use DNS-01 Challenge.
Vantagens e Desvantagens
Vantagens:
- Funciona quando porta 80 está bloqueada
- Validação totalmente via TLS (mais seguro em alguns cenários)
- Não requer acesso ao DNS
Desvantagens:
- Não suporta wildcards
- Menos clientes ACME suportam
- Requer servidor capaz de ALPN
- Mais complexo de depurar
Comparativo de métodos
| Característica | HTTP-01 | DNS-01 | TLS-ALPN-01 |
|---|---|---|---|
| Porta necessária | 80 | Nenhuma | 443 |
| Wildcard | Não | Sim | Não |
| Servidor interno | Não | Sim | Não |
| Complexidade | Baixa | Média | Média |
| Suporte | Amplo | Amplo | Limitado |