Cuando usas Cloudflare como CDN/proxy, tus visitantes se conectan a los servidores perimetrales de Cloudflare. Pero, ¿qué pasa con la conexión entre Cloudflare y tu servidor de origen? Sin un certificado en tu origen, esa conexión puede estar sin cifrar, lo que anula el propósito de HTTPS.
Modos SSL de Cloudflare explicados
| Modo | Visitante → Cloudflare | Cloudflare → Origen | Seguridad |
|---|---|---|---|
| Off | HTTP | HTTP | Sin cifrado |
| Flexible | HTTPS | HTTP | Falsa sensación de seguridad |
| Full | HTTPS | HTTPS (sin verificar) | Cifrado pero sin validación de certificado |
| Full (Strict) | HTTPS | HTTPS (verificado) | Recomendado |
«Flexible» es peligroso. Tus visitantes ven un candado, pero la conexión Cloudflare→origen es HTTP plano. Cualquier persona en esa ruta de red puede leer el tráfico. Usa siempre Full (Strict).
Configurar Full (Strict) con un certificado de Let’s Encrypt
El mejor enfoque: instalar un certificado real y de confianza pública en tu origen y habilitar Full (Strict).
Paso 1: Obtener un certificado de Let’s Encrypt
Usa GetHTTPS para obtener un certificado gratuito para tu dominio. Necesitas desactivar temporalmente el proxy de Cloudflare (nube gris en la configuración DNS) para que el desafío HTTP-01 llegue a tu origen, o usar DNS-01 que funciona independientemente.
Método DNS-01 (sin necesidad de cambiar el proxy):
- En GetHTTPS, elige el desafío DNS-01
- Añade el registro TXT
_acme-challengeen el DNS de Cloudflare - Verifica y descarga el certificado
Método HTTP-01:
- En el DNS de Cloudflare, haz clic en la nube naranja → nube gris (solo DNS) para tu dominio
- Completa el desafío HTTP-01 en GetHTTPS
- Después de obtener el certificado, vuelve a habilitar la nube naranja (proxied)
Paso 2: Instalar en tu servidor de origen
Instala el certificado en Nginx o Apache como de costumbre.
Paso 3: Habilitar Full (Strict) en Cloudflare
- Ve al panel de Cloudflare → tu dominio
- SSL/TLS → Overview
- Selecciona Full (Strict)
Cloudflare ahora verificará que tu origen tiene un certificado válido y de confianza antes de conectarse.
Alternativa: certificado de Cloudflare Origin CA
Cloudflare ofrece sus propios certificados Origin CA: certificados gratuitos que son confiables solo por Cloudflare, no directamente por los navegadores.
Cómo obtener uno
- Panel de Cloudflare → SSL/TLS → Origin Server
- Haz clic en Create Certificate
- Elige el tipo de clave (RSA o ECDSA) y la validez (hasta 15 años)
- Descarga el certificado y la clave privada
- Instálalo en tu servidor de origen
Ventajas y desventajas frente a Let’s Encrypt
| Cloudflare Origin CA | Let’s Encrypt (vía GetHTTPS) | |
|---|---|---|
| Confiable para | Solo Cloudflare | Todos los navegadores (confianza pública) |
| Validez | Hasta 15 años | 90 días |
| Renovación automática necesaria | No (validez larga) | Sí (cada 60-90 días) |
| Funciona sin Cloudflare | No | Sí |
| Acceso directo del navegador | No (muestra error) | Sí |
| Costo | Gratis | Gratis |
Usa Cloudflare Origin CA si tu origen siempre está detrás de Cloudflare y quieres cero gestión de renovación.
Usa Let’s Encrypt si podrías prescindir de Cloudflare (mantenimiento, migración), necesitas acceso directo a tu origen o quieres un certificado que funcione en todas partes.
Verificar que Full (Strict) funciona
Después de la configuración, comprueba que la conexión esté completamente cifrada:
- Panel de Cloudflare → SSL/TLS → Overview debe mostrar «Full (Strict)»
- Visita tu sitio → el candado debe mostrar el certificado de Cloudflare a los visitantes
- Verifica el origen directamente (omitiendo Cloudflare):
Esto debe devolver una respuesta HTTPS válida con tu certificado de Let’s Encrypt (o Origin CA).curl -I --resolve yourdomain.com:443:YOUR_ORIGIN_IP https://yourdomain.com
Preguntas frecuentes
¿Por qué no usar simplemente el modo Flexible?
El modo Flexible cifra la conexión visitante→Cloudflare pero envía el tráfico desde Cloudflare a tu origen en HTTP plano. Esto significa:
- Tu proveedor de internet, proveedor de hosting o cualquier persona en la red entre el borde de Cloudflare y tu servidor puede leer todo el tráfico
- Tus visitantes ven un candado y creen que están seguros, pero la conexión del backend no lo está
- Esto es especialmente peligroso para páginas de inicio de sesión, formularios de pago o cualquier dato sensible
¿Mi certificado de origen necesita coincidir exactamente con mi dominio?
Para el modo Full (Strict), sí: el certificado de origen debe ser válido para el dominio al que Cloudflare se conecta. Un certificado de Let’s Encrypt para example.com funcionará. Un certificado autofirmado o un certificado para un dominio diferente no funcionará.
¿Puedo usar un certificado comodín en el origen?
Sí. Un certificado comodín para *.example.com en tu origen funciona con Full (Strict) para cualquier subdominio proxied a través de Cloudflare.
¿Qué sucede si mi certificado de origen expira?
El modo Full (Strict) de Cloudflare verifica la validez del certificado. Si tu certificado de origen expira, Cloudflare no puede establecer una conexión segura y tu sitio muestra un error 526 (Invalid SSL Certificate). Configura el monitoreo de vencimiento para prevenir esto.