Icono del sitio MiBloguel

Certificados HTTPS en WordPress con Let’s Encrypt

lets-encrypt

Si eres un asiduo a mi blog, o de vez en cuando has entrado por error pinchando un enlace (bueno, no habrá sido para tanto), te habrás fijado que ahora se accede usando el protocolo https:// o te aparece un candado en la barra de direcciones. Y pensarás: «bueno, pues ahora se habrá metido a vender artículos online…«. Pues nada más lejos de la realidad (por ahora, eh); simplemente he incluido un certificado SSL para mostrar mi blog a través del protocolo HTTPS; y lo mejor de todo, es que ha sido totalmente gratuito.

Tan sencillo como solicitarlo, y realizar los cambios pertinentes en mi instalación de WordPress. Bueno, en realidad hay que seguir varios pasos para configurarlo y que el resto del mundo online me pueda ver y navegue por las páginas como casi siempre: sintiéndose más seguros pero leyendo las mismas chapas que acostumbro a soltar por aquí. Si te ha picado el gusanillo de saber un poquito más, y si crees que puede serte útil en tu web, sigue en sintonía conmigo.

 

Qué es el protocolo HTTPS

 

Hypertext Transfer Protocol Secure (protocolo seguro de transferencia de hipertexto) es un protocolo de aplicación basado en el HTTP; tiene como fin la transferencia segura de datos de Hipertexto. Podríamos decir que es la versión segura de HTTP, ya que usa un cifrado basado en SSL/TLS para desarrollar un canal criptográfico entre el servidor y cliente. Lo que se logra es que la información más delicada (como claves y passwords) no sea visible si alguien intercepta la transferencia de datos de la conexión; simplemente verá registros en clave, inviables de descifrar.

Las páginas que utilizan este protocolo son fácilmente identificables; basta fijarse en el https:// que lleva la dirección URL en la barra de navegación de las páginas web. En algunos navegadores va acompañado del ya característico candado verde.

La motivación para usar el protocolo HTTPS es poder autentificar la web visitada y proteger la privacidad e integridad de la comunicación. Hasta ahora se estaba utilizando principalmente en entidades bancarias, tiendas online o para los emails; incluso en cualquier tipo de servicio que requiera intercambiar datos personales, contraseñas o información sensible. También es verdad que en muchos casos solo tienen una parte de sus URLs en HTTPS, mientras el resto de la web no dispone de esta protección.

En 2014, Google anunció que empezaría a tener en cuenta el uso de HTTPS en los sites; no solo para el sistema de indexación sino como factor de posicionamiento. Aunque ahora no es un elemento de peso, con el tiempo tenderá a gozar de más protagonismo. Google busca reforzar la seguridad de la información en Internet, y al mismo tiempo proteger la privacidad de los usuarios; y qué mejor forma que recompensando a las páginas que tengan certificado SSL.

«Pero espera», dirás. «Esto tiene un coste, ¿verdad?» Sigue leyendo…

 

Let’s Encrypt para certificados SSL

 

Hasta ahora, disponer de un protocolo HTTPS requería hacer un desembolso económico, con precios cercanos a los 500 euros. Además, para tener un certificado SSL era necesario realizar varios pasos previos y se demoraba algunas horas en tenerlo operativo. Pero todos los inconvenientes para presentar nuestra web por HTTPS pueden ser cosa ya cosa del pasado; este año se ha presentado una entidad certificadora gratuita y viene acredita por patrocinadores como Cisco Systems, Fundación Mozilla o la Universidad de Michigan. Tienen el apoyo pleno de Facebook y Google, y todo bajo el impulso de la Fundación Linux. Casi nada.

Let’s Encrypt es el resultado de la suma de todos estos esfuerzos. Ya no será necesario pagar a una entidad certificadora; Let’s Encrypt lo hace gratuitamente y como hemos visto viene respaldada por importantes avalistas. Los certificados son gratuitos, libres y automáticos; la instalación es rapidísima y están reconocidos por los principales navegadores (son de 2048 bits, los que recomienda Google). Y lo mejor, la renovación es automática: instalar y olvidarte de más gestiones burocráticas.

Bueno, todo esto que suena de fábula tiene un «pero»; y no es otro que tu proveedor de hosting tenga implementado el sistema para certificados gratuitos Let’s Encrypt. No son todos los que han dado este paso, pero sí es verdad que cada vez más ofrecen la posibilidad. Pregunta si es tu caso por un casual, muchas empresas miran por sus clientes y facilitan cambiarse de protocolo; y si estás pensando en migrar de compañía, puede que este post te sirva de excusa para ello.

Si todavía tienes dudas, un apunte más: el actual protocolo HTTP tiene los días contados. En poco tiempo será relevado por el HTTP/2 (el actual es el 1.1), mucho más rápido y seguro que el vigente; hablamos de una mejora de rendimiento de un 60%. Y sí, lo has adivinado: HTTP/2 necesita HTTPS; requiere de un certificado SSL, por lo que si ahora instalas uno, ya estarás listo para la siguiente generación de la World Wide Web.

 

Guía para activar Let’s Encrypt en tu WordPress

 

Antes de nada, advertirte que aunque los pasos son sencillos y genéricos, es posible que tengas que revisarlo cuidadosamente. WordPress es un mundo de plugins y configuraciones, por lo que lo mejor es supervisar concienzudamente lo que tenemos instalado y las modificaciones que vayamos realizando. Para preparar el terreno, he preparado una lista de comprobaciones previas para que la transición sea dulce y rápida:

 

  1. Vacía la caché de WordPress. Si estás usando un plugin, usa el botón correspondiente para borrar caché y desactívalo.
  2. Si estas usando una red de entrega de contenidos (CDN), apágala. Estos dos primeros puntos son esenciales para que no queden copias de datos que en breve estarán «obsoletas».
  3. Cualquier plugin de seguridad (como iThemes Security) es mejor tenerlo desconectado momentáneamente; aunque están preparados para protocolos HTTPS si no se configuran al final del proceso, pueden bloquear la web. Más adelante volveremos con este plugin porque nos va a ser de utilidad.
  4. Asegúrate que el archivo robots.txt está accesible y funcionando, y que no bloquea ningún recurso importante.
  5. Haz una copia de seguridad de la web, y sobre todo de la base de datos; no es que vaya a pasar nada grave, pero en estos procesos mejor guardarnos las espaldas.
  6. Deja sesiones las abiertas en tu WordPress y en el cPanel de tu hosting. Habrá que modificar un par de opciones/archivos, y es recomendable tener acceso inmediato para seguir el tutorial.

 

Tras estos preparativos, comencemos con la guía de pasos:

 

1.- Activa el certificado SSL de Let’s Encrypt

 

Como para poder usar HTTPS necesitarás instalar un certificado SSL, es preciso adquirir uno. Si tu proveedor ofrece uno gratuito, tan sencillo como entrar en tu menú de hosting y activarlo desde certificados.

 

 

Al crear un certificado SSL de Let’s Encrypt, advertirás que caduca a los 3 meses; esto es normal, se van renovando automáticamente. Si decides revocarlos, existe la opción; pero una vez activados son tuyos para siempre.

Y ya está, tendríamos nuestro sitio web listo para el protocolo HTTPS. Aunque todavía tendremos que configurar algunas opciones y servicios externos para que todo funcione correctamente. Pero el paso importante ya está tomado, y estamos un poco más cerca de nuestro objetivo.

 

2.- Actualiza la configuración de WordPress

 

Nuestro WordPress debe ser consciente de que ha habido un «pequeño» cambio en la manera en que se va a mostrar al mundo. Para ellos, accedemos al menú Ajustes->Generales:

 

 

 

Ahora WordPress sabe que se va a conectar por HTTPS. Para que el protocolo también funcione a nivel de administrador, hay que configurar el archivo wp-config.php. Para ello, recordarás que hemos hablado del plugin iThemes Security; si lo tenías instalado, actívalo y accede a la opción «SSL«: hay que conectar las casillas para que SSL acceda a toda nuestra web (página de acceso y panel de administrador incluido). Si no tienes este plugin pero sí uno parecido, seguro que viene una opción para activarlo. Y si no dispones de ninguno, no te preocupes: tan fácil como añadir estas líneas a tu archivo wp-config.php:

 

define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

 

3.- Añade redirecciones 301

 

En una migración de HTTP a HTTPS, redireccionar todas las nuevas URLs (páginas, posts) es un paso importante. Aunque WordPress puede redireccionar de forma automática las solicitudes HTTP a HTTPS, es mejor ahorrar recursos; y nada mejor que una redirección 301 para resolverlo. Aunque se puede hacer desde un plugin, ya que estamos editando archivos pues aprovechamos.

Abrimos el archivo .htaccess y agregamos la siguiente instrucción, arriba en la cabecera:

 

Para servidores Apache:

 

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://pontuweb.com/$1 [R=301,L]

 

Para servidores NGINX:

 

server {
listen 80;
server_name pontuweb.com;
return 301 https://pontuweb.com$request_uri;
}

 

sustituyendo pontuweb por el dominio de tu página, y añadiendo las www si las utilizas. De todas formas, tu proveedor de hosting te puede proveer el código correcto para tu servidor en concreto. Utilizando una redirección 301 no vamos a perder posicionamiento en buscadores, y además Google no nos penaliza por contenido duplicado.

 

4.- Reemplaza todos los links de la base de datos

 

Vamos a actualizar todos los enlaces y URLs de nuestra base de datos, de HTTP a HTTPS. Es un proceso sencillo pero crucial para no encontrarnos con sorpresas más adelante; el uso de URLs relativas es la mejor forma de construir una web, pero nunca puedes estar seguro de que se cumpla.

Necesitamos descargarnos el archivo «Database search and replace script in php» para que nos ayude en el proceso. Está preparado para trabajar con nuestro CMS, y respaldado por WordPress.org, por lo que es totalmente seguro. Descomprimimos el archivo y lo subimos a una carpeta nueva en la raíz de tu instalación en WordPress. Una vez allí lo ejecutamos abriendo un navegador y escribiendo en la barra de dirección «pontuweb.com/carpeta/searchreplacedb.php» (lógicamente escribe tu propio dominio). Se ejecutará la aplicación y no te preocupes, no hay que modificar casi nada:

 

 

 

 

 

5.- Ajusta los últimos detalles en WordPress

 

Aunque suena todo muy complicado, la verdad que el proceso en la instalación de WordPress es sencillo y rápido. De todas formas si has hecho copia de la base de datos, puedes proceder sin miedo. Y por último, y no menos importante, cuando termines no te olvides borrar el archivo «searchreplacedb.php» de tu servidor: ha cumplido su función y es bueno no dejar rastros para posibles miradas indiscretas. 😉

Es recomendable ir revisando la web desde otro navegador en cada paso, para cerciorarnos de que todo va marchando bien. De todas formas, en este momento es cuando tendríamos la web perfectamente migrada y funcionando a tope. Entra si quieres en Ajustes->Enlaces permanentes en WordPress y guarda los cambios para actualizar tus URLs personalizadas. Ya puedes ir activando de uno en uno el resto de plugins que estaban desactivados, y revisa que se adaptan sin problemas al certificado SSL.

Navega por tus páginas y confirma que tienes el https:// en su sitio o te aparece el candado verde. Dedica un poco de tiempo (si tienen que ser un par de horas, pues no pasa nada) y prueba el rendimiento en varios navegadores. La parte importante de la migración está completa y tenemos nuestra web hablando por el nuevo protocolo. Pero no hemos terminado: ahora hay que decirle al resto del mundo que nos hemos mudado.

 

6.- Crea una nueva propiedad en Google Search Console

 

La web ya la tenemos operativa, aunque hay que notificarle a Google que usamos un nuevo protocolo; y es que aunque se acceda por HTTPS, para Google es un sitio totalmente distinto. Si ya teníamos creada una propiedad no importa: déjala ahí, no se borra (Google lo aconseja) pero abre una nueva propiedad para el dominio con https:// en tu cuenta de Google Seach Console:

 

 

Configura la propiedad de la misma manera que la anterior (si la hubiera), con las opciones pertinentes. Aunque no es necesario para rastrear la web, sube el archivo sitemaps.xml para que Google actualice su índice; para ello, envía su ubicación desde Rastreo->Sitemaps.

Para acelerar un poco más las cosas, podemos hacer que el robot de Google acceda a nuestro sitio web, lo procese y compruebe si tenemos bloqueado algún recurso de la página. Desde el menú Rastreo->Explorar como Google pulsamos en «Obtener«. A continuación, en la fila de abajo, selecciona «Enviar al índice«; se abrirá una ventanita en la que marcaremos «Rastrear esta URL y sus enlaces directos«. Con esto, ya tendríamos a Google al corriente de la migración.

 

 

7.- Prepara Google Analytics para el cambio a HTTPS

 

Si dispones de una cuenta en Google Analytics (deberías, aunque tengas poco tráfico), ahora tenemos que actualizar la URL para no perder datos y estadísticas. Tan sencillo como ir hasta Administrador->Propiedad->Configuración de la propiedad y hacer el cambio en la pestaña «URL predeterminada«:

 

 

Por supuesto, actualiza también la configuración de las vistas que utilices. Ya tendríamos nuestro Analytics funcionando; si tenemos bastantes visitas, después de unos minutos podremos ver sus datos en Informes->Tiempo real. De todas formas, para asegurarnos que todo funciona, revisa el estado de seguimiento en Propiedad->Información de seguimiento->Código de seguimiento. Si por alguna razón no recibe datos, puede que tengas que restablecer la conexión; revisa que el código de seguimiento esté correcto y que no tengas ningún filtro obstaculizando el flujo de datos.

Una buena idea para dejarlo todo bien atado, es asociar los datos de Search Console con Analytics. De esta manera conseguiremos dos cosas: asegurarnos que seguiremos recibiendo estadísticas, y que Google Analytics pueda mostrar parte de esos datos en algunos de los informes. Para ello, vamos a Administrador->Propiedad->Configuración de la propiedad->Search Console y pulsamos en «Search Console«. Desde ahí conectaremos con nuestra cuenta de Search Console y así asociar la propiedad con el sitio web; podremos elegir un método para verificar la información de seguimiento en Analytics. Dos pájaros de un tiro.

 

8.- Comprueba la seguridad del certificado SSL de Let’s Encrypt

 

Seguro que todavía quieres despejar la duda de si el certificado realmente funciona; y sobre todo, confirmar por algún medio de su seguridad y validez. Hay varias herramientas online; una de ellas es GlobalSign SSLLabs, que hará un exhaustivo examen de configuraciones, protocolos y detalles del certificado. Junto a estos datos, mostrará una puntuación global que refleje su autenticidad, vigencia y el valor para tu sitio web.

 

 

9.- Consideraciones adicionales tras la migración

 

Veamos algunas actualizaciones que deberías repasar tras el cambio HTTP – HTTPS:

 

 

Puede que los primeros días pierdas algo de tráfico y posicionamiento al mover el sitio web a HTTPS: en algunos casos hay un pequeño descenso de velocidad de carga de las páginas y pérdida de visibilidad por las redirecciones 301. Es algo normal, pero si haces el proceso correctamente y sigues todos los pasos, con el tiempo notarás mejoras sustanciales. Además, tus visitantes tendrán en consideración el uso del protocolo HTTPS y sus datos estarán mucho más seguros.

¿Realmente merece la pena? Si tienes la oportunidad de integrar un certificado SSL gratuito a tu web, sea de la temática que sea, no lo dudes. Como habrás visto no es un proceso especialmente complicado, incorporarás un nuevo factor al posicionamiento y estarás de los primeros en la lista cuando se generalice el protocolo HTTP/2. Por supuesto, si tienes una tienda online o necesitas que la transacción de datos con tus clientes sea segura, ya estás tardando. Si ves que los precios no se ajustan a tu presupuesto, siempre puedes buscar un hosting que se adapte a las nuevas tendencias de Internet y ofrezca certificados Let’s Encrypt, libres y sin coste.

Salir de la versión móvil