Cloudflare es un sistema gratuito que actúa como un proxy (intermediario) entre los visitantes del sitio y el servidor.
Configuración SSL en Cloudflare
SSL de Cloudflare encriptan el tráfico HTTPS entre Cloudflare y el servidor web de origen y ofrece los siguientes servicios:
OFF
Desactivar desactiva las conexiones HTTPS seguras entre los visitantes y Cloudflare y entre Cloudflare y su servidor web de origen. Los visitantes solo pueden ver su sitio web a través de HTTP. Cualquier conexión intentada a través de HTTPS da como resultado una redirección HTTP 301 a HTTP sin cifrar.
Flexible
La opción SSL flexible permite una conexión HTTPS segura entre su visitante y Cloudflare, pero obliga a Cloudflare a conectarse a su servidor web de origen a través de HTTP sin cifrar. No se requiere un certificado SSL en su servidor web de origen y sus visitantes seguirán viendo el sitio como HTTPS habilitado.
Full
Full garantiza una conexión segura entre el visitante y su dominio de Cloudflare y entre Cloudflare y su servidor web.
Full (strict)
Completo (estricto) garantiza una conexión segura entre el visitante y su dominio de Cloudflare y entre Cloudflare y su servidor web de origen. Configure su servidor web de origen para permitir conexiones HTTPS en el puerto 443 y presente un certificado de CA de origen de Cloudflare o un certificado válido adquirido de una autoridad de certificación. Este certificado debe estar firmado por una autoridad de certificación en la que Cloudflare confíe, que tenga una fecha de vencimiento futura y cubra el nombre de dominio solicitado (nombre de host).
CLoudflare y WordPress
Lo primero que hacemos es instalar nuestro WordPress de forma convencional
Llegados a este punto tenemos que saber que Cloudflare añade a nuestra web una cabecera que es HTTP_CF_VISITOR la cuál tendremos que comprobar para que WordPress no haga un loop de redireciones.
Para ello existe un plugin de 3 líneas de código llamado Cloudflare Flexible SSL (las cuales no recomiendo añadir al functions.php) que hará la activación de $_SERVER[‘HTTPS’] cuando detecte que la cabecera HTTP_CF_VISITOR contenga el conjunto de caracteres https.
if ( isset( $_SERVER[‘HTTP_CF_VISITOR’] )
&& strpos( $_SERVER[‘HTTP_CF_VISITOR’], ‘https’ ) !== false ) {
$_SERVER[‘HTTPS’] = ‘on’;
}
Espero que os sirva de utilidad para hacer vuestros sitios web más seguros.