Guía Definitiva para Instalar un Certificado SSL en WordPress.

El año pasado Google anunció que los sitios que no tuvieran certificado de seguridad, serían marcados en su popular buscador Chrome como “Sitio Inseguro”. A partir de ésto y como es obvio, se pudo concluir que los sitios seguros tendrán mejor posicionamiento en Google. Aunque esto no significa que los primeros lugares siempre tendrán que ser sitios seguros, definitivamente un certificado SSL dará más puntos en la incesante lucha por los sitios SEO.

A medida que los ataques, los robos de identidad y todo tipo de uso y abuso de la información transmitida sin seguridad fue aumentando, todos han estado de acuerdo en agregar seguridad a sus sitios aún si no son de comercio electrónico o no tienen continuamente transacciones de tarjetas de crédito. Este es el caso de los sitios de WordPress que en su mayoría son sitios de información, aunque también es usado sin problemas para comercio electrónico.

WordPress es el sistema de gestión de contenido (CMS) más popular y si estás leyendo esto, es porque seguramente tienes uno o varios sitios en esta plataforma. Sin embargo, con su popularidad el riesgo de ataques es mucho mayor y la vulnerabilidad de la plataforma para diversos ataques es manifiesta diariamente.

Una de las formas de dar seguridad a los usuarios, es proveer encriptación entre el navegador y el servidor, lo que se conoce como cifrado SSL. En términos sencillos, cuando un usuario ingresa su información en un sitio ésta puede tener fines de comercio electrónico, por ejemplo, al comprar un producto en línea o simplemente el inicio de una sesión de usuario. Incluso su propio ingreso a la consola de WordPress. Para todos estos casos, el certificado SSL se asegura de que la información que ingresamos se transfiera de forma segura entre ambos puntos y no se vea comprometida en caso de ser interceptada. Lo cual, créame, se hace muy fácilmente.

¿Qué es un SSL?

SSL es la abreviatura de Secure Socket Layer. Es una forma estándar de crear un canal de comunicación cifrado entre un navegador web y un servidor web, o sea, su computadora y un sitio de Internet. Al hablar de cifrado, me refiero a que la seguridad de los datos entre los dos puntos viaja encriptada.

Como mencionamos inicialmente, Google prefiere los sitios web con certificados SSL en su SERPs. Además, Google Chrome, marca las páginas de manejo de scripts NO SSL como NO SEGURAS.

 

Http vs. https.

Cuando se instala un certificado de seguridad SSL, el sitio debe accederse a través del protocolo de seguridad https, en vez del http común.

Cuando desee ver si la comunicación con un sitio es segura o no, fíjese en que protocolo está utilizando, si es http, el sitio definitivamente NO es seguro y solamente con https lo será. Recuerde que lo que asegura el SSL es la comunicación entre el navegador y el sitio, por lo que debe usar un protocolo de navegación que maneje la encriptación com Https.

Es importante señalar que un certificado de seguridad no tiene nada que ver con la seguridad del servidor. O sea, no garantiza que nadie pueda entrar por otros medios al servidor y robar información. Lo que trata de garantizar SSL, es que la comunicación entre ambos puntos viaje encriptada y que el sitio no sea sustituido maliciosamente.

Cuando no era tan popular la seguridad, los hackers solían reemplazar sitios de bancos, correo electrónico, etc. con otros falsos para que los usuarios inadvertidamente procedieran a teclear sus contraseñas u otra información si darse cuenta.

El propósito de los certificados SSL es proteger la información confidencial de los usuarios, como detalles de tarjetas de crédito, registros, inicios de sesión y otros tipos de formularios, durante su viaje por Internet.

Existen varios proveedores de certificados SSL con precios que van desde los 9 hasta los 250 dólares americanos. Sin embargo, vale la pena mencionar el certificado SSL GRATUITO ofrecido por “Let’s Encrypt”.

¿Qué es el Certificado de “Let’s Encrypt”?

Según su sitio: “Let´s Encrypt es una entidad de certificación abierta, automatizada y gratuita que le ofrece el Grupo de Investigación de Seguridad de Internet (ISRG) sin fines de lucro”.

El proyecto se inició a mediados de 2016. En un año, ganó una popularidad increíble y emitió certificados a más de catorce millones de dominios. Dado que, el proyecto es un proyecto sin fines de lucro, en un corto período de tiempo varios patrocinadores se presentaron para apoyar la causa.

Además de la instalación regular de proveedores de certificados SSL pagados, la mayoría de los proveedores de hosting ahora también admiten certificados de “Let’s Encrypt”. Por lo que tener seguridad ya no es un lujo.

Agregando Certificado SSL a WordPress.

Agregar un certificado SSL ya sea de “Let’s Encrypt” u otro a un sitio hecho en WordPress es bastante fácil. La mayoría de los proveedores de alojamiento en particular aquellos que cuentan con cPanel, permiten instalar “Let’s Encrypt” con un solo click. Puede contactar a su proveedor de hospedaje y preguntar cómo instalar el certificado SSL gratuito en su sitio. Todos cuentan con amplios tutoriales.

Configuraciones Adicionales y Revisiones.

Una vez instalado el certificado “Let’s Encrypt” o cualquier otro certificado SSL, ciertas configuraciones adicionales se requieren en su sitio de WordPress para que todo funcione correctamente.

Verificación de la instalación del certificado SSL.

Para verificar la instalación del Certificado SSL, hay una serie de herramientas en línea que nos ofrecen una gran ayuda para confirmar que el certificado SSL se encuentre correctamente instalado y configurado en su sitio web. SSL Labs.

Uno de ellos es el SSL Server Test por SSLLabs.

Por ejemplo, para verificar el certificado de un dominio, simplemente teclee el dominio con su dirección SSL (https). Sin embargo, al instalar un certificado se agrega una nueva dirección de Internet, no se sustituye, o sea, el dominio seguirá funcionando con http: y ahora con https. Sin embargo son dos direcciones de Internet distintas lo que genera duplicidad de contenido con las consecuentes penalizaciones de Google.

Podría estar pensando, ¿por qué mi dominio no se sirve solo a través de HTTPS? La razón es que hay que hacer configuraciones adicionales que obliguen a la dirección http dirigirse a la dirección https.

Redirigir HTTP a HTTPS

Para redirigir tu dominio de HTTP a HTTPS, debes crear una regla en el archivo .htaccess de WordPress que redireccionará tu sitio siempre a HTTPS. Para hacerlo, inicia sesión en tu cuenta de hospedaje entra a los archivos de tu sitio, busca el directorio “public_html”, y ahí busca la carpeta del sitio con el que estás trabajando. En la carpeta superior de tu sitio, deberás ver el archivo .htaccess. Si no logras ver el archivo .htaccess, asegúrate de marcar la casilla “ver archivos ocultos” para que aparezca.

Adicionalmente, puedes usar un manejador de FTP e ir directo al directorio raíz de WordPress y abrir el archivo .htaccess con un editor de archivos de texto. Al principio del archivo, he pegado las siguientes líneas justo debajo de “RewriteEngine On”.

NOTA IMPORTANTE!

Debes ser extremadamente cuidadoso al manipular el archivo .htaccess y hacer un respaldo del archivo antes de modificarlo. Un pequeño error puede deshabilitar tu sitio.

El archivo .htaccess puede tener muchas cosas, principalmente si manejas un plugin de caché o de seguridad como ithemes security o semejantes. Sin embargo, siempre tendrá una sección de WordPress como ésta.

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Abajo de la linea RewriteEngine On, deberás agregar:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

De preferencia, copia y pega para evitar errores.

Ahora, si visitas tu sitio web y tecleas http://tusitio.com se enviará automáticamente a HTTPS enviándolo a https://tusitio.com.

Sin embargo, si seleccionas un enlace interno en la página, te volverá a llevar a una dirección http porque los enlaces internos no han sido actualizados.

Cambiar todas las URL internas a HTTPS.

Dado que estamos trabajando en un sitio web ya activo con contenido publicado, todas las URL internas también deben reemplazarse con HTTPS, de lo contrario pasará lo que vimos anteriormente mostrando contenido mixto.

Para que WordPress haga su parte, ingresa a Configuración -> General, y reemplaza HTTP con HTTPS en la dirección del sitio: Dirección de WordPress y Dirección del sitio y haga clic en Guardar cambios en la parte inferior de la página.

Todas las URL nuevas y las existentes ahora serán servidas como HTTPS. O sea si navegas de la página principal a otras, éstas ya serán HTTPS.

Advertencia de Contenido Mixto en WordPress.

Aún que los enlaces dentro del sitio ya te llevarán a direcciones https, existirán algunos elementos que aún no han sido actualizados como gráficas o archivos por lo que se deberán cambiar a la nueva URL.

Para identificarlos, hay una excelente herramienta en línea de JitBit que escanea el sitio completo y detecta páginas que tienen URL de HTTP.

JitBit SSL Check

Solucionar advertencia de contenido de mezcla en WordPress.

Para corregir las URL detectadas anteriormente, hay un plugin denominado Velvet Blues Update que puede buscar y reemplazar todas las URL. Instale y active el plugin, y siga la captura de pantalla a continuación.

Actualizar URLs en Velvet Blues Plugin

Después de reemplazar las URL, verifica las URL de HTTP una vez más. Y aqui esta el resultado. Es importante esperar un rato para verificar y limpiar los cachés, ya que en ocasiones Jitbit sigue viendo versiones antiguas y marcando el error.

Solución todo en uno para SSL en WordPress.

Si lo anterior te toma mucho tiempo o parece complicado, existe otra alternativa más simple, aunque con menos control de tu parte. Sin embargo, ambas opciones son excluyentes y debes decidirte por una. En lo particular creo que el mejor direccionamiento es con htaccess y prefiero tener la menor cantidad de plugins instalados.

Para esto, existe otro excelente plugin llamado “Really Simple SSL” que detecta automáticamente la configuración de tu sitio WordPress y lo cambia para que se ejecute a través de https.

Puedes instalar y activar el plugin desde el panel de administración de WordPress. Luego navega a Configuración -> SSL -> pestaña Configuración. Configúralo de acuerdo a tus preferencias.

Configuración SSL realmente simple

Una vez hecho esto, guárdalo y luego navega a la pestaña Configuración.

SSL realmente simple

Y ahí lo tienes, ¡ya has terminado de configurar el plugin! Si aún encuentras algún problema, entonces la mejor manera es resolverlo es manualmente como se explicó anteriormente.

Configurar las URL de HTTPS en Google Analytics.

El último y más importante paso es configurar las URL de HTTPS en Google Analytics para que pueda hacer un seguimiento de tus visitantes.

Para hacerlo, entra a tu cuenta de Google Analytics y luego navegue hasta Admin. Seleccione su propiedad específica y haga clic en Configuración de la propiedad y cambie la URL predeterminada a HTTPS. Consulte la imagen de abajo.

Cambiar URL de propiedad predeterminada

Ahora, ingrese a la pestaña de vista retrocediendo un paso y luego seleccione Ver configuración. Cambiar la URL del sitio web a HTTPS.

Cambiar la URL del sitio web en Google Analytics

Has visto cómo instalar fácilmente un Certificado SSL en un sitio web de WordPress y cómo hacer el seguimiento de los visitantes del sitio en Google Analytics. Una cosa más a tener en cuenta, si tu sitio tiene integraciones de terceros, como una página de Facebook, una cuenta de Twitter, etc. Asegúrate de que todas tengan URL de HTTPS.

RECUERDE LO QUE COMENTAMOS AL PRINCIPIO:

NO crea que un certificado SSL va a proteger completamente un sitio web de WordPress. En realidad, no lo hace, solo encripta la comunicación entre su navegador web y su servidor. Sin embargo, si está buscando asegurar su sitio de WordPress de intrusiones, vea nuestros tips de seguridad.