Tutorial

Cloudflare en el sitio de un cliente: SSL Full (strict) y caché

Seguridad y monitorización10 min de lectura11 pasos

Publica o retoma el sitio de un cliente, activa el proxy de Cloudflare para el CDN y la protección DDoS, y al día siguiente el cliente llama: bucle de redirección, carrito compartido entre dos visitantes, administración atascada en una versión antigua. Estos fallos no vienen de Cloudflare, sino de dos ajustes dejados por defecto: el modo SSL/TLS y las reglas de caché. Esta guía fija una configuración estándar, verificable por comando, que repite de un sitio a otro.

Contenido· Por qué dos ajustes lo deciden todo1/13
  1. 01Por qué dos ajustes lo deciden todo
  2. 02Lo que esta configuración estándar le evita
  3. 03Requisitos que comprobar antes de tocar la zona
  4. 04Los modos SSL/TLS de Cloudflare, de Off a Full (strict)
  5. 05Orden de operaciones sin cortes
  6. 06Qué guarda Cloudflare en caché por defecto y dónde aparece el riesgo
  7. 07Rutas que nunca deben quedar en caché en un sitio dinámico
  8. 08Crear la regla de omisión con Cache Rules
  9. 09Verificar la caché realmente aplicada
  10. 10Leer los valores de cf-cache-status
  11. 11Solución de problemas: los errores que reaparecen
  12. 12La vuelta atrás, antes de que se la pidan
  13. 13Quién lleva qué y por dónde seguir

Por qué dos ajustes lo deciden todo

Cloudflare se conecta en unos clics, y por eso mismo se deja tal cual. Sin embargo, dos fallos cuestan un cliente. El primero afecta al cifrado: en modo Flexible, Cloudflare habla en HTTP sin cifrar con el origen; si el origen ya redirige todo a HTTPS, la petición entra en bucle y el navegador muestra ERR_TOO_MANY_REDIRECTS. El segundo afecta a la caché: en cuanto una regla demasiado amplia hace elegible el HTML, una página personalizada puede servirse a otro visitante. La respuesta no es desactivar Cloudflare, sino repartir los papeles. La agencia lleva la relación con el cliente y los ajustes de la zona; el alojamiento lleva el origen, es decir, un certificado válido, las redirecciones y las cabeceras de caché.

Lo que esta configuración estándar le evita

  • Bucle de redirección — el modo Flexible combinado con una redirección de HTTP a HTTPS en el origen, que el navegador señala como ERR_TOO_MANY_REDIRECTS.
  • Página con sesión servida a otro visitante — una regla de «cachear todo» sin excepción para el carrito, la cuenta o la administración.
  • Administración congelada — el panel muestra una versión antigua porque se conservó una respuesta dinámica.
  • Errores 525 y 526 — el handshake TLS falla o el certificado de origen no supera la validación en cuanto pasa a Full o Full (strict).
  • Cifrado de fachada — en Flexible, el visitante ve el candado mientras el tramo entre Cloudflare y el origen circula sin cifrar.
  • Ajustes distintos en cada sitio — una única lista de pasos sustituye las decisiones caso por caso y, por tanto, los olvidos.

Requisitos que comprobar antes de tocar la zona

Cuatro puntos, ninguno se adivina. Un certificado válido en el origen: no caducado, no revocado, emitido para el nombre del sitio, con la cadena completa (certificado final e intermedios). La documentación de Cloudflare acepta un certificado de una autoridad pública como Let's Encrypt, o un certificado Cloudflare Origin CA, que solo vale mientras el registro siga con proxy. El puerto 443 abierto hacia el origen, con SNI compatible. Acceso a la zona DNS del cliente. Y por último, la lista de URL dinámicas del sitio: administración, carrito, pago, cuenta.

En un alojamiento ServOrbit, el certificado SSL Let's Encrypt está incluido, con renovación automática: el origen cumple así el primer punto, y el modo Full (strict) pasa a ser posible. La comprobación de la renovación tras el proxy figura en el último paso.

Los modos SSL/TLS de Cloudflare, de Off a Full (strict)

Desplace la tabla

ModoEntre Cloudflare y el origenVeredicto para el sitio de un cliente
OffTodo circula en HTTP sin cifrar, en ambos tramos.Descartarlo.
FlexibleEl visitante puede usar HTTPS; el tramo de Cloudflare al origen no está cifrado.Solución temporal. Bucle asegurado si el origen redirige a HTTPS.
FullHTTPS hacia el origen, sin validar el certificado: se acepta uno autofirmado o no válido.Paso de transición mientras corrige el certificado.
Full (strict)HTTPS con validación del certificado de origen (autoridad pública u Origin CA).Objetivo estándar de todos sus sitios.
Automatic SSL/TLSEl recomendador elige el modo más seguro que admite el origen y nunca uno menos seguro.Ajuste por defecto: fije igualmente el modo de forma explícita para saber qué se aplica.

Orden de operaciones sin cortes

  1. Compruebe el certificado del origen

    Desde su equipo, consulte el origen directamente con su dirección (IP_ORIGINE es una plantilla que debe sustituir):

    openssl s_client -connect IP_ORIGINE:443 -servername example.com </dev/null | openssl x509 -noout -subject -dates

    El sujeto debe llevar el nombre del sitio y las fechas deben abarcar hoy. Complételo con curl -sI --resolve example.com:443:IP_ORIGINE https://example.com/: una respuesta HTTP válida demuestra que el certificado se acepta.

  2. Anote las redirecciones del origen

    Pruebe el puerto 80 del origen: curl -sI --resolve example.com:80:IP_ORIGINE http://example.com/. Si la respuesta contiene una cabecera Location hacia https://, el origen redirige todo a HTTPS. Es la causa del bucle en modo Flexible, y no es un defecto: es un buen ajuste de origen.

  3. Mantenga el registro en solo DNS

    Mientras las dos comprobaciones anteriores no estén en verde, el proxy sigue desactivado en el registro. El tráfico va directo al origen, como antes.

  4. Pase el modo SSL/TLS a Full (strict)

    En el panel de la zona, abra SSL/TLS, Overview y elija el modo personalizado Full (strict). Mientras el registro no tenga proxy, nada cambia para el visitante.

  5. Active el proxy en último lugar

    Pase el registro A, AAAA o CNAME del sitio a modo con proxy. El gesto, registro por registro, se describe en Activar o desactivar el proxy de Cloudflare en un registro DNS.

  6. Imponga HTTPS en el borde

    Una vez en Full (strict), active «Always Use HTTPS» o una regla de redirección del lado de Cloudflare, y retire si es posible la redirección del origen: la documentación de Cloudflare cita esta opción entre los remedios del bucle.

  7. Compruebe el resultado

    Ejecute curl -sI https://example.com/: espera una respuesta 200 o la redirección prevista, y la cabecera server: cloudflare. Compruebe también que la renovación del certificado de origen sigue funcionando tras el proxy: el alojamiento documenta la renovación automática, no su comportamiento detrás de Cloudflare. Vuelva a leer la fecha de fin del certificado con el paso 1 tras la próxima renovación, y vuelva a Full si el certificado caduca. Pase después a la sección de caché antes de dar el sitio por entregado.

Qué guarda Cloudflare en caché por defecto y dónde aparece el riesgo

Cloudflare decide la caché según la extensión del archivo, no según su tipo MIME: archivos comprimidos, imágenes, vídeo, fuentes, documentos, hojas CSS y scripts JS son elegibles. La documentación precisa que el CDN no cachea HTML ni JSON por defecto. Añade que no conserva una respuesta acompañada de una cabecera Set-Cookie, ni una respuesta cuyo Cache-Control sea private, no-store, no-cache o max-age=0, ni una petición que no sea GET. El riesgo aparece, por tanto, el día en que alguien añade una regla de caché sobre todo el sitio. Esa regla hace elegible el HTML y, si el origen no indica nada, una página de carrito o de cuenta puede acabar en la caché.

Rutas que nunca deben quedar en caché en un sitio dinámico

  • Administración e inicio de sesión — /wp-admin y /wp-login.php en WordPress, o el equivalente de su CMS.
  • Carrito y pago — /cart, /checkout y sus variantes traducidas en una tienda WooCommerce.
  • Cuenta de cliente — /my-account y toda página que muestre datos propios del visitante.
  • Cookies de sesión — por ejemplo wordpress_logged_in_ o woocommerce_items_in_cart: una petición que las lleve debe llegar siempre al origen.
  • Vistas previas — las URL con ?preview=true, que solo debe ver el autor con sesión iniciada.
  • API autenticadas — /wp-json cuando la respuesta depende del usuario conectado.

Crear la regla de omisión con Cache Rules

  1. Abra Cache Rules

    En la zona, abra Caching y después Cache Rules, y cree una regla. Las Cache Rules exigen que el registro del dominio o subdominio tenga proxy.

  2. Escriba el filtro

    Elija Edit expression e introduzca, adaptándola a su CMS: (http.request.uri.path contains "/wp-admin") or (http.request.uri.path contains "/wp-login.php") or (http.request.uri.path contains "/cart") or (http.cookie contains "wordpress_logged_in_")

  3. Elija Bypass cache

    En «Then», dentro de Cache eligibility, seleccione Bypass cache: las peticiones que coincidan dejan de ser elegibles para la caché.

  4. Coloque y pruebe la regla

    Elija su posición con «Place at», guarde y use el Rules simulator de Cloudflare para comprobar que la regla se activa en una URL de administración o de carrito.

Verificar la caché realmente aplicada

Una regla bien escrita no prueba nada mientras no se haya leído la respuesta. La cabecera cf-cache-status indica lo que Cloudflare hizo con cada petición. Para la administración: curl -sI https://example.com/wp-admin/ | grep -i cf-cache-status. Para una página con una cookie de sesión simulada: curl -sI -H "Cookie: wordpress_logged_in_test=1" https://example.com/ | grep -i cf-cache-status. En estas dos URL el valor nunca debe ser HIT. Pruebe también una página pública dos veces seguidas, para ver pasar un MISS y luego un HIT si decidió cachearla.

Leer los valores de cf-cache-status

  • HIT — el recurso se encontró en la caché de Cloudflare y se sirvió desde ella.
  • MISS — la respuesta era elegible, pero no estaba en la caché en ese momento: la sirvió el origen.
  • EXPIRED — existía una copia, pero estaba caducada; el origen sirvió una respuesta nueva.
  • BYPASS — la petición podía cachearse, pero la respuesta del origen resultó no serlo.
  • DYNAMIC — Cloudflare juzgó al recibir la petición que el recurso no es elegible y consultó el origen directamente.
  • REVALIDATED — el origen confirmó mediante una petición condicional que la copia en caché seguía siendo válida.
  • STALE — se sirvió una copia caducada porque no se pudo contactar con el origen.

Solución de problemas: los errores que reaparecen

Cinco síntomas cubren la mayoría de las llamadas de clientes tras poner un sitio detrás de Cloudflare. Para cada uno, la documentación de Cloudflare describe la causa; la corrección casi siempre está en el origen, es decir, en el alojamiento, o en el modo SSL/TLS de la zona.

  • ERR_TOO_MANY_REDIRECTS (Chrome), «La página no redirige correctamente» (Firefox) — causa: modo Flexible y origen que redirige de HTTP a HTTPS. Remedio: pasar a Full o Full (strict), lo que exige un certificado de origen, o retirar la redirección del origen e imponer HTTPS en el borde. Revise también «Always Use HTTPS», HSTS y las reglas de redirección que se contradicen.
  • Error 525, SSL handshake failed — el handshake TLS falla con la zona en Full o Full (strict). Causas citadas: ningún certificado válido instalado, puerto 443 cerrado, SNI no compatible, suites de cifrado incompatibles. Remedio: repetir el paso 1 y consultar el registro de errores de nginx o Apache del origen.
  • Error 526, invalid SSL certificate — en Full (strict), Cloudflare no puede validar el certificado de origen: caducado, revocado, nombre incorrecto o cadena incompleta, ya que el origen debe servir el certificado final y los intermedios. Solución provisional: Full, mientras lo corrige.
  • Errores 521 y 522, web server is down y connection timed out — no son errores de certificado: el origen está caído o no responde a tiempo. Revise el cortafuegos del origen y facilite al alojamiento el código, la hora con su zona horaria y la URL afectada.
  • Carrito o cuenta de un visitante visto por otro — una regla de caché demasiado amplia. Desactívela, añada la regla de omisión, purgue la caché y vuelva a leer cf-cache-status en las rutas sensibles.

La vuelta atrás, antes de que se la pidan

Anote el estado inicial: modo SSL/TLS, registros con proxy, reglas existentes. Si el sitio se degrada tras el cambio, devuelva el registro a solo DNS: el tráfico vuelve directo al origen. Una trampa: un certificado Cloudflare Origin CA solo lo reconoce Cloudflare, y la documentación advierte de que al cortar el proxy el visitante ve un error de certificado no confiable. Conserve, por tanto, un certificado de una autoridad pública en el origen.

Quién lleva qué y por dónde seguir

Una vez rodada, la lista cabe en una página por sitio: certificado comprobado, Full (strict), proxy activado, regla de omisión probada, cf-cache-status releído. El reparto sigue siendo simple: a la agencia, la zona del cliente y sus ajustes; al alojamiento, el origen. Para las tareas vecinas, consulte Activar el DNS gestionado de Cloudflare en un dominio y Migrar el WordPress de un cliente sin cortes si el sitio cambia de origen antes de ponerse detrás de Cloudflare.

Una cartera de sitios de clientes, un solo lugar

Una agencia que estandariza sus sitios necesita un origen con certificado válido y vigilado, y un solo lugar donde encontrar los dominios y alojamientos de sus clientes.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva