Lunes, 09 Octubre 2017 14:45

Activar SSL (https) en WordPress

Escrito por 
CMS:  WordPress |  Versión:  Todas |  Nivel de dificultad:  Básico |  Tiempo estimado de lectura:  5 minutos


Activar SSL


Aprende a instalar un Certificado SSL Let's Encrypt en tu Hosting cPanel y como activarlo en WordPress para distribuir los contenidos bajo protocolo HTTPS de forma segura.

La velocidad con la que los cambios se suceden en Internet, principalmente en materia de seguridad y concretamente en la orientada a las pasarelas de pago, formularios, accesos y otros donde la necesidad de proteger datos sensibles es prioritaria nos lleva inexorablemente al uso de certificados de seguridad que añadan una capa de protección "extra" con el fin de no exponer información sensible.

Hasta hace poco se creía que el uso de un Certificado SSL (Secured Socket Layer) o "capa de conexión segura" era solo para clientes que tienen un sitio WordPress orientado al comercio electrónico (WooCommerce por ejemplo) y que seguramente necesitan disponer de un certificado SSL para validar la identidad de su sitio web y encriptar toda la información enviada desde y hacia el sitio web.

Google nos ha puesto los pies en nuestro sitio y ha dejado claro que cualquier web publicada en Internet debería utilizar una capa de seguridad mediante protocolo HTTPS, y ahora más que núnca esto también afecta al posicionamiento de los sitios web que no lo utilicen.

Cuando haces uso de un certificado SSL (https) instalado en tu Hosting, los datos de los compradores o visitantes estarán totalmente asegurados para todas las transacciones financieras, nombres de usuario y contraseñas, e información de tarjetas de crédito.

   

¡Empezamos!  

 

 ¿Qué es un certificado SSL?

El protocolo SSL permite cifrar los datos de un sitio web garantizando a los clientes o visitantes que el sitio al que acceden es legítimo y que aplica una capa de seguridad adicional para evitar exponer datos sensibles.

Los datos que se transmiten a través de SSL se codifican para garantizar que no puedan ser interceptados por terceros.

No es posible habilitar SSL (https) en tu sitio web sin tener un Certificado SSL instalado, ya que dejarás tu sitio web inaccesible.
 

 Certificados SSL Let's Encrypt

Puedes ver en este vídeo información general de este tipo de certificados SSL gratuitos que puedes obtener desde este enlace donde lo explicamos con mayor detalle.

 

En Webempresa ofrecemos gratuitamente a nuestros clientes la instalación de Certificados SSL Let's Encrypt para las webs que alojen en sus cuentas de Hosting.
 

 Habilita AutoSSL desde tu cPanel

Para instalar un Certificado SSL (para clientes de Webempresa) tienes que acceder a tu Área de Cliente y en el menú superior Hosting seleccionar el submenú Certificados


Certificados

Haz clic en la imagen para ampliarla  

Dentro de este apartado haces clic en el botón azul Gestionar certificados del Hosting contratado. Si tienes varios deberás realizar este proceso para cada dominios que tengas asociado a una cuenta de Hosting.

En la página que se muestra en Nuevos certificados para <tu-dominio> tienes la opción de instalar los certificados SSL Let's Encrypt o Comodo (este último de pago).

Let's Encrypt

Haz clic en la imagen para ampliarla  

Haces clic en el botón azul Habilitar AutoSSL para instalar automáticamente un Certificado SSL Let's Encrypt para el dominio seleccionado.

Verás el siguiente aviso en la parte superior de la pantalla:

Al solicitar el certificado para www.sudominio.tld el certificado funcionará para www.sudominio.tld y sudominio.tld indiferentemente.

Desde que se habilita AutoSSL en la cuenta, hasta que puedas ver tus webs por SSL, pueden pasar hasta 20 minutos mientras se realiza todo el proceso de validación e instlación de los certificados.

No debes por el momento activar la autoconfiguración de SSL para WordPress.

Vete a tu cPanel, Seguridad, SSL/TLS y en Instalar y administrar SSL para el sitio (HTTPS) comprueba que ahora son visibles los Certificados SSL instalados.


Instalar y administrar SSL para el sitio (HTTPS)

Haz clic en la imagen para ampliarla  

Ahora toca activar SSL en WordPress, ...sigue leyendo!

 

Accede de nuevo a tu Área de Cliente, Hosting, Certificados, y haz clic en el botón azul Gestionar certificados.

Abajo verás una caja informativa con un aviso en amarillo, donde te mostrará información de los dominios detectados activos, con Alias www, en un selector, y un tickbox que debes marcar para confirmar que deseas que se configure SSL para el sitio web de cada dominio que desees.

También debes marcar la casilla (tickbox) Acepto que se haga el cambio de configuración automático de mis webs en Wordpress. para confirmar que se realice dicho cambio.


Autoconfigurar HTTPS en WordPress

Haz clic en la imagen para ampliarla  

Si todo está ok por tu parte haces clic en el botón azul Convertir las instalaciones de WordPress seleccionadas a HTTPS.

Nota Este proceso también reemplaza las urls de tu web con HTTP para que pasen a ser HTTPS, por lo que no es necesario que luego tu por tu cuenta ejecutes scripts como searchreplacedb2.php o utilices plugins como Better Search Replace para cambiar urls masivamente.

Concluido el proceso obtendrás un registro (log) en pantalla de los Resultados del cambio a HTTPS de las webs seleccionadas aplicados en la instalación de WordPress en la que quieres habilitar SSL (https).


Log

Haz clic en la imagen para ampliarla  

Y un aviso que no debes pasar por alto:

Recuerda vaciar la caché de las instalaciones de WordPress de las que hayas solicitado el cambio a HTTPS, ya que hasta que no vacíes la cache la web seguirá apuntando a HTTP.

Puedes comprobar que certificados SSL tienes instalados y para que dominios, urls temporales (también es válido) desde tu cPanel, Seguridad, SSL/TLS.


SSL/TLS

Haz clic en la imagen para ampliarla  

 Vídeo explicativo de la instalación

En el siguiente vídeo te explico como instalar un Certificado SSL Let's Encrypt en tu cpanel de Webempresa y posterormente activar HTTPS en WordPress para distribuir tus contenidos de forma segura.

 

 

 Configura Certificados SSL ya instalados

Si ya tienes un Certificado SSL instalado y por alguna razón no lo has aplicado a tu sitio web, te explico el proceso para activarlo en una instalación de WordPress.

  1. Accede a tu sitio WordPress como administrador
  2. Vete a Ajustes, Generales
  3. En el campo Dirección de WordPress (URL): cambia http:// por https://
  4. En el campo Dirección del sitio (URL): cambia http:// por https://

Ajustes generales

Haz clic en la imagen para ampliarla  

A partir de este cambio, si tu Certificado está correctamente instalado, el sitio WordPress trabajará a través de SSL.

También puedes realizar el cambio modificando el archivo wp-config.php de tu instalación añadiendo los defines:

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

defines wp-config.php

Haz clic en la imagen para ampliarla  

Nota Haz una copia de seguridad del citado archivo antes de modificarlo.

Por último podrías realizar una redirección de http:// a https:// forzando todas las páginas de tu dominio a cargar usando dicho protocolo seguro desde .htaccess colocando el siguiente código:

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{QUERY_STRING} !wc-api [NC]
RewriteCond %{HTTP_HOST} ^dominio.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.dominio.com
RewriteRule ^(.*)$ https://dominio.com/$1 [R=301,L,NE]

redirección .htaccess

Haz clic en la imagen para ampliarla  

Nota Debes sustituir dominio.com por el nombre real de tu dominio.

Ten en cuenta que desde principios de 2017 Google ha optado por premiar y priorizar el posicionamiento orgánico de los sitios web que utilicen SSL, obviamente sin dejar de lado los contenidos.

Tampoco olvides realizar una redirección 301 de todas las páginas HTTP hacia sus versiones HTTPS para evitar que tu posicionamiento se vea afectado y desde tus Herramientas para Webmasters realizar el cambio de HTTP a HTTPS teniendo en cuenta que antes debes tener ambas versiones dadas de alta en tu cuenta de Google Search Console.

¿Necesitas redireccionar el tráfico de HTTP a HTTPS o a la inversa en el archivo .htaccess y no sabes como? ...sigue leyendo.


 

 Aplica redirecciones en .htaccess

Cuando instalas un Certificado SSL debes tener en cuenta que una de las configuraciones importantes a realizar es la redirección de los dominios sin SSL a esos mismos dominios pero con SSL de forma que todo el tráfico sea reconducido hacia la URI correcta pero bajo HTTPS.

Esto implica añadir una serie de códigos en el archivo .htaccess de la carpeta donde se encuentre la web que quieras dejar funcionando bajo HTTPS.

 

Lectura recomendada:
.htaccess en cPanel ¿dónde está el archivo?

Los códigos de redirecciones globales, en este caso aquellos que van a enviar el tráfico de HTTP hacia HTTPS deben situarse al principio del archivo .htaccess para que sean interpretados en primer lugar.

Te planteo 2 casos de redirección 301 habituales:

  • Redireccionar de HTTP a HTTPS
  • Redireccionar de HTTPS a HTTP

Este último es útil en casos en los que por alguna razón has habilitado SSL en un sitio web, se han producido problemas o errores por una incompleta o incorrecta activación de SSL y necesitas dejar la web temporalmente funcionando de nuevo con HTTP (no SSL) mientras resuelves el incidente.

 

 Redirecciona de HTTP a HTTPS

Cabe decir que es necesario disponer de un Certificado SSL instalado en el Hosting para poder hacer uso de este protocolo más seguro.

# Enviar trafico HTTP a HTTPS
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{HTTP_HOST} ^tudominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tudominio\.com$
RewriteRule ^(.*)$ https://tudominio.com/$1 [R=301,L,NE]

Pueden existir casos en los que queramos añadir excepciones en el forzado de la redirección de HTTP a HTTPS (por ejemplo, la página de notificación de Redsys).

Puedes hacerlo añadiendo una línea de código adicional. Si por ejemplo, quieres añadir una excepción para la url https://tudominio.com/?wc-api=WC_redsys tendrás que dejar el código anterior de la siguiente forma:

# Enviar trafico HTTP a HTTPS
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{QUERY_STRING} !wc-api [NC]
RewriteCond %{HTTP_HOST} ^tudominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tudominio\.com$
RewriteRule ^(.*)$ https://tudominio.com/$1 [R=301,L,NE]

Otro ejemplo, si no quieres forzar el uso del HTTPS para la url https://tudominio.com/blog/entrada1.html tendras que poner un código como el siguiente:

# Enviar trafico HTTP a HTTPS
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{REQUEST_URI} !\/blog\/entrada1\.html$ [NC]
RewriteCond %{HTTP_HOST} ^tudominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tudominio\.com$
RewriteRule ^(.*)$ https://tudominio.com/$1 [R=301,L,NE]
 

 Redirecciona de HTTPS a HTTP

Puede darse el caso que aún teniendo un Certificado SSL instalado (Comodo, Let's Encrypt, etc) quieras forzar el tráfico encriptado SSL para que se sirva con HTTP por diversas razones (pruebas con plugins conflictivos, configuración de una pasarela pago que no trabaja bien por HTPPS, etc), en cuyo caso códigos como el siguiente te permitirán pasar de HTTPS a HTTP sin desinstalar el Certificado SSL de tu Hosting.

# Enviar trafico HTTPS a HTTP
RewriteCond %{ENV:HTTPS} on [NC]
RewriteCond %{HTTP_HOST} ^tudominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tudominio\.com$
RewriteRule ^(.*)$ http://tudominio.com/$1 [R=301,L,NE]
Estos códigos deben colocarse por encima de cualquier otro código de redireccionamiento, al principio del archivo .htaccess.

Nota Debes sustituir tudominio.com por el nombre real de tu dominio.

 

 Verifica el estado SSL de un dominio desde cPanel

Las nuevas versiones de cPanel (66.0.x) permiten ver el estado de los Certificados SSL instalados en base a dominios y subdominios asociados a una cuenta de Hosting que estén añadidos en el Panel de Hosting.

Accede a tu cPanel y ve al apartado Seguridad, SSL/TLS Status.


SSL/TLS Status

Haz clic en la imagen para ampliarla  

Escribe el nombre de un dominio/subdominio o mira el listado que se muestra debajo de la caja de búsqueda.

En la columna Certificado podrás ver que dominios/subdominios tienen un Certificado SSl instalado y activo y si está correctamente instalado o no.


Certificado

Haz clic en la imagen para ampliarla  

Si te asusta un poco toda la información inicial que muestra la tabla de SSL/TLS Status, no te preocupes, puedes hacer clic en el icono de rueda dentada   a la derecha del buscador para desplegar una tabla con 4 columnas y opciones que puedes activar o desactivar en cada tickbox para reducir la información visible y no liarte demasiado.


SSL/TLS Status

Haz clic en la imagen para ampliarla  

 

Existen plugins como WordPress HTTPS (SSL) para gestionar SSL en WordPress, pero en casos como este, en los que se muestra que es más viable realizar la implementación desde el dashboard, por medio de .htaccess o en el archivos wp-config.php, cargar la instalación con más plugins es innecesario.

WordPress

WordPress HTTPS (SSL)

WordPress HTTPS pretende ser una solución "todo en uno" para el uso de SSL en sitios WordPress.

 

 Conclusiones

Utilizar Certificados SSL para que tu sitio trabaje bajo protocolo HTTPS es muy importante, tanto que buscadores como Google priorizan el indexado de sitios con SSL en perjuicio de aquellos que trabajen todavía con HTTP.

Instalar un Certificado SSL y configurarlo en WordPress es una tarea que no debería llevarte más de 10 minutos por lo que posponerla a tiempos mejores no hará que tu web sea más segura y tampoco que Google la mire con buenos ojos ¿a que estás esperando?

 

A ti te toca ahora determinar cual es la opción más factible para implementar SSL en tu sitio web WordPress para añadir seguridad adicional en las operaciones que implican la manipulación de datos delicados (las pasarelas de pago gestionan los datos de compras en servidores externos ajenos al tuyo) y mejorar tu karma con Google.

     

¿Te ha resultado interesante este artículo?

Suscríbete para recibir consejos exclusivos para WordPress, Joomla y PrestaShop



Luis Méndez Alejo

Miembro del equipo técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Google+