Implementación de Cloudflare en Caddy
Caddy gestiona certificados HTTPS de forma automática, pero si usas Cloudflare como DNS, puedes mejorar la seguridad y ocultar la IP de tu servidor. Para eso, puedes configurar el ACME DNS Challenge, que permite validar tus dominios usando Cloudflare en lugar del típico challenge HTTP.
Requisitos previos
- Dominio gestionado en Cloudflare.
- Caddy instalado.
- Un API Token de Cloudflare con permisos DNS sobre tu dominio.
Paso 1: Crear el API Token en Cloudflare
-
Accede a Cloudflare Dashboard.
-
En tu perfil, entra a API Tokens.
-
Crea un token con:
- Zone:DNS:Edit (limitado al dominio en cuestión).
-
Guarda el token en un sitio seguro.
Paso 2: Añadir el token al entorno
Guarda el token como variable de entorno para evitar escribirlo directamente en el Caddyfile.
# En ~/.bashrc o ~/.zshrc
export CLOUDFLARE_AUTH_TOKEN=tu_token_aqui
source ~/.bashrc # o ~/.zshrc
Paso 3: Configurar el Caddyfile
Bloque global con soporte para DNS Challenge usando Cloudflare:
{
acme_dns cloudflare
email admin@example.com
}
example.com {
reverse_proxy http://192.168.1.10:8080
}
subdomain.example.com {
reverse_proxy http://192.168.1.10:8081
}
El token se toma de la variable de entorno
CLOUDFLARE_AUTH_TOKEN.
Paso 4: Validar y recargar Caddy
caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
Beneficios de usar Cloudflare con Caddy
- Ocultas la IP real del servidor.
- Añades mitigación contra ataques DDoS.
- Puedes aprovechar el cacheo de contenido estático.
Detalles adicionales
- Modo SSL en Cloudflare: activa "Full (Strict)" para que Cloudflare acepte los certificados de Caddy.
- Compilar Caddy con soporte DNS personalizado: si no usas un binario precompilado, consulta esta guía: 👉 Usar binario de Caddy customizado