Guía de instalación de un certificado SSL en WordPress

¿Qué es un certificado SSL?

Un certificado SSL es una herramienta a nivel de servidor nos va a permitir cifrar las comunicaciones entre nuestro sitio web y sus usuarios. Se trata de un recurso especialmente útil cuando estos usuarios deben enviarnos formularios con información sensible, como por ejemplo datos personales y financieros.

Los certificados SSL usan un protocolo de comunicación denominado https, que podemos interpretar como http seguro o más exactamente hypertext transport protocol secure (protocolo seguro de transferencia de hipertexto).

El protocolo de comunicaciones clásico, el http, presenta el problema de que todo el código va en texto plano y por tanto una interceptación de la comunicación podría revelar información sensible. El https trata de resolver esta cuestión.

Protocolo https

¿Necesito un certificado SSL?

Hasta hace no mucho tiempo solo era obligatorio si realmente necesitabas proteger datos, como en el caso de un ecommerce. Hoy en día se recomienda que todas las webs utilicen el protocolo https por tres motivos fundamentalmente:

  1. Permite cumplir de manera más eficaz con la RGPD (Reglamento General de Protección de Datos europeo)
  2. Google etiqueta como sitios inseguros aquellas webs que no incorporan y afecta a su posicionamiento en el buscador.
  3. Ofrece una mayor sensación de seguridad a tus visitantes (algunos estudios indican que un 30% de los usuarios comprueban si la web utiliza https)

Sin embargo también hay razones de índole más técnica, como conservar los datos de referals en Analytics o mejorar el rendimiento de tu sitio (HTTP/2).

Ejemplo de protocolo https

¿Cómo se instala un certificado SSL?

Para explicar esta tarea vamos a utilizar la fórmula más habitual que es la que nos ofrecen los principales proveedores de hosting. Actualmente las empresas más serias ya permiten activar un certificado SSL gratuito desde sus paneles de control.

El método depende de cada proveedor pero en lineas generales, en su panel de gestión del hosting existe un espacio dedicado a la seguridad donde encontraremos o bien una opción para gestionar la adquisición de certificados SSL de diferentes tipos o bien otra opción que directamente nos invitará a instalar Let’s Encrypt.

Let’s Encrypt es una entidad de certificación que proporciona certificados gratuitos y facilita el proceso de validación de los mismos. Ha supuesto una verdadera revolución en un mercado que hasta su aparición en el 2016 no estaba al alcance de los proyectos lowcost.

Uno de los proveedores que tiene un procedimiento más completo es SiteGround, que además da la posibilidad de instalar un certificado de tipo Wildcard. Esto supone que podemos utilizar https también en los subdominios de nuestro sitio, por ejemplo en 3ymedia.net y en subdominio1.3ymedia.net y subdominio2.3ymedia.net.

Con un certificado simple de Let’s Encrypt esto no se puede hacer lo que suponía un problema imporatante hasta hace bien poco. A fecha actual no he encontrado a proveedores que ofrezcan esta posibilidad al margen de SiteGround (pero eso no quiere decir que no los haya 😉 )

Para instalar el certificado entramos en nuestro panel de gestión.

Instalación de certificado SSL Let's Encrypt en Siteground Paso 1

Buscamos el apartado correspondiente, en este caso SEGURIDAD.

Instalación de certificado SSL Let's Encrypt en Siteground Paso 2

Seleccionamos Let’s Encrypt y activamos el certificado para el dominio que escojamos (podemos estar gestionando varios desde un mismo panel). Recuerda activar la versión Wildcard si vas a gestionar subdominios.

Instalación de certificado SSL Let's Encrypt en Siteground Paso 3

Una de las ventajas de la gestión en SiteGround que mencionaba más arriba es que esta empresa ofrece algunas configuraciones de ayuda en el proceso, como las redirecciones de http a https automáticas y la reescritura de enlaces externos para evitar el contenido mixto.

No entraré en esos detalles puesto que la idea es que esta guía sea genérica y vamos a hacer lo mismo mediante un procedimiento estándar. Además evitará que si más adelante migramos de hosting, estos ajustes se pierdan con el cambio.

¿Qué debo hacer en WordPress después de activar el https?

Activar tu certificado SSL en el panel de gestión del hosting no es el final del proceso si ya tienes una web operativa. Muy al contrario, hasta aquí era la parte fácil. Ahora es cuando de verdad comienza la diversión.

Te recomiendo que dispongas de entre 30′ y 60′ de tiempo para este proceso. No es excesivamente complicado pero pueden presentarse problemas y suspenderlo a medias podría tener consecuencias negativas para tu sitio: problemas de acceso, duplicar indexaciones o incluso destrozar la base de datos por andar con prisas.

Cambia la URL de tu sitio

Debemos especificar a WordPress que la URL de nuestro sitio web ha cambiado. Ten en cuenta que una url que empieza por http y otra que empieza por https son distintas a todos los niveles.

Cambiar la URL de nuestro sitio web en WordPress es muy sencillo. Solo necesitas ir a Ajustes > Generales y modificarlas.

Cambiando las URLs de WordPress a https

Antes de guardar tus ajustes para hacer efectivo el cambio, verifica que ya has activado el certificado en tu panel de gestión como hemos visto en el paso anterior. De otro modo tu web quedará inaccesible y te verás obligado tener que arreglar el problema modificando «a pelo» algunas entradas de tu base de datos.

Añade un 301 en tu htaccess

Esta tarea nos va a permitir que todos los accesos a través de direcciones http se redirijan a su espejo https.

Además nos ayudará a que todas las urls indexadas en buscadores se vayan renovando paulatinamente actualizándose a la nueva versión.

Recuerda que las mismas direcciones en sus dos versiones representan para Google páginas distintas y podrías tener problemas de contenido duplicado que afectarían a tus rankings. Este es un problema que afecta a muchas personas que simplemente han activado sus certificados, no han terminado de completar el proceso que estoy detallando y están sufriendo penalizaciones en su posicionamiento en buscadores.

A la hora de cumplir este paso, deberíamos saber si nuestro proveedor de hosting está usando servidores de tipo Apache o Nginx. Si no lo sabes, ante la duda usa el código específico para Apache, ya que algunos proveedores ofrecen automáticamente intérpretes que «traducen» las instrucciones a Nginx.

Una vez que lo sepas entra por ftp a tu sitio y descarga el fichero .htaccess. Se trata de un fichero oculto que estará en la carpeta raíz de tu web (al mismo nivel donde están las carpetas wp-content, wp-admin y wp-includes, por ejemplo).

Tienes que editar ese fichero en local y volver a subirlo a tu servidor sobrescribiéndolo (sería importante que te guardaras una copia de seguridad antes de cambiar nada).

Para servidores Apache añade al principio del documento:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

En el caso de un servidor Nginx el código es el siguiente:

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

Fíjate que en este caso debes sustituir la cadena ‘dominio.com’ por el dominio de tu sitio.

En este punto a veces se dan problemas cuando ya existían redirecciones 301 anteriores (por ejemplo de la versión con www a la versión sin www, como se hacía hace años) que puedan estar provocando un bucle de redireccionamiento.
Si es así, mira a ver si puedes reducir las directivas de redirección.

¡Que no cunda el pánico!

Si andar con código no es lo tuyo existe un plugin de WordPress que puede ayudarte con esta parte. Se trata de Really Simple SSL, que te guiará con todos estos cambios (y algunas cosas más).

Plugin para redirecciones 301 de http a https

Personalmente prefiero hacerlo a mano, cuántos menos plugins mejor y menos para cosas que solo vas a cambiarlas una única vez. Prueba a utilizar el código que te he compartido y mantén tu sitio web limpio y rápido 😉

Modifica las URLs de tu base de datos

A pesar de todo lo que hemos hecho, en tu base de datos hay un montón de urls internas de tu sitio que debemos cambiar: enlaces en posts, imágenes, menús, etc… Por ejemplo ajustes de plugins, widgets, menús, configuraciones o enlaces internos.

Cambiar todo eso a mano puede ser muy laborioso (a veces casi imposible) así que vamos a recurrir a una herramienta muy potente que lo haga de forma automatizada.

Se trata de un proceso conocido como Search&Replace, buscar y sustituir. Cambiaremos todas las urls de la base de datos que incluyan el texto por ( haz lo mismo añadiéndolas si en tu web utilizas las www).

Database Search and Replace

Esto no se puede hacer a lo bruto sobrescribiendo las tablas (cosas del mysql) así que nos descargaremos un script gratuito de interconectit.com. Completa el formulario y podrás descargarlo libremente. En la misma web encontrarás una guía sobre el sencillo procedimiento. Básicamente consiste en:

  1. Descarga el zip y descomprímelo en una subcarpeta de tu servidor (emplea tu cliente FTP).
  2. Entra en esa ruta desde tu navegador
  3. Define la cadena de búsqueda y por qué cadena debe ser sustituida.
  4. Haz una prueba
  5. Si todo va bien, ejecuta el script
  6. No olvides borrar el script de tu servidor al acabar porque supone un riesgo grave de seguridad mantenerlo ahí.

De nuevo ¡Que no cunda el pánico!

Existe un plugin para WordPress que nos ayuda a no tener que andar con ftps, scripts y cosas nerds 😉

Plugin para Search and Replace en WordPress

Se trata de Better Search Replace y su funcionamiento es muy similar al script que acabos de ver. En este caso después de hacer los cambios puedes desactivar y eliminar el plugin para evitar que se quede ahí molestándote.

Vigila el contenido mixto

Ejemplo de contenido mixto en un sitio webEste es uno de los problemas que más quebraderos de cabeza suele suponer. Cuando en tu sitio quedan llamadas a direcciones inseguras http, los navegadores indican que la página tiene elementos inseguros y no marcan el fondo verde en la barra de urls (que es uno de nuestros objetivos principales).

Pueden ser recursos de otras web que quieres cargar en tu sitio (como imágenes) o urls que no se guardan en la base de datos. Aunque esto esté mal, hay muchos plugins y temas que lo hacen, guardan la información de los campos de sus ajustes (como los de algunas urls) directamente en sus archivos php. Con los métodos que detallo a continuación podrás descubrirlos, intuir mediante ingeniería inversa cuáles son en concreto y modificarlos.

Para resolverlo no queda más remedio que usar herramientas avanzadas de tu navegador como el inspector de elementos y detectar cada caso individualmente para corregirlo.

Por ejemplo en el caso de Firefox, a partir de la versión 23, todos las peticiones de contenido mixto bloqueadas son guardadas en un log del Panel de Seguridad en la Consola Web.

En Google Chrome, haciendo clic con el botón derecho sobre la página y escogiendo «Inspeccionar» para abrir el Inspector de elementos, podemos elegir la pestaña «Console» y en ella se nos indicará todo el contenido mixto que se está cargando con advertencias tipo:

Mixed Content: The page at…was loaded over HTTPS, but requested an insecure  file … This content should also be served over HTTPS.

Donde aparecen los segundos puntos suspensivos es donde tendremos la pista del fichero de tipo mixto que se está cargando.

Una herramienta que puede ayudarte en este sentido es Why no padlock, que analizará la url que le proporciones y te indicará el contenido mixto en un listado de forma directa. Por desgracia, solo analiza esa url, no el sitio completo.

Si tu sitio tiene menos de 200 páginas también puedes usar el sistema que jitbit.com ofrece gratuitamente con esa limitación. Se trata de un crawler que escaneará tu web por ti y detectará aquellas urls inseguras que se te hayan colado.

Tareas para después de hacer todos los cambios

Felicidades, ya has completado el proceso de adaptación de un sitio web con WordPress a https. Ahora solo nos quedan realizar algunas tareas complementarias que también son importantes y que tienen que ver con todo el ecosistema relativo al SEO, social media, analítica web, publicidad online, etc.

  • Comprueba que no se ha roto ningún enlace del sitio. El plugin Broken Link Checker lo hará por ti y te avisará de todo los problemas que encuentre. Una vez hayas terminado desactiva este plugin pues consume muchos recursos.
  • Actualiza tu url en Google Analytics (si no el servicio dejará de rastrear tu tráfico)
  • Añade la nueva propiedad (la versión https) en Search Console y Bing Webmaster Tools y sube el nuevo sitemap.xml para favorecer una indexación completa lo más rápidamente posible.
  • Cambia tu url en todas tus redes sociales (especialmente la asociación con tu canal de YouTube, para poder seguir añadiendo enlaces de sitio en tus vídeos)
  • Actualiza tus anuncios en Facebook Ads y Adwords
  • Cambia las urls de tu sistema de email marketing
  • Si estás utilizando una CDN comprueba que todo va bien. CloudFlare, por ejemplo, tiene algunas particularidades que pueden provocar incompatibilidades.

Deja un comentario