Hola!, en esta ocasión vamos a ver cómo instalar un certificado SSL en WordPress, tanto en un servidor autogestionado como en el de algún proveedor con acceso cPanel, para que nos aparezca el famoso «https» en la dirección de nuestra web.
Índice de contenido
¿Qué son los certificados SSL?
Los certificados SSL (Secure Socket Layer, o capa de conexión segura) son unos ficheros que se alojan en el servidor con los que haremos posible un intercambio seguro de datos entre nuestro navegador (cliente) y el servidor. Esta conexión segura se basa en la criptografía de clave asimétrica, y, normalmente, está «certificada» por una entidad de confianza (firma del certificado).
¿Por qué necesitamos HTTPS?
Imagina por un momento que has de hacer una operación bancaria y los certificados SSL no existieran, los datos de acceso al portal bancario, como usuario y contraseña, viajarían por la red sin cifrarse, por lo que cualquier persona que esté «viendo» el tráfico de la red, podría hacerse con tus credenciales y acceder al banco. Da algo de miedo, ¿no? Con soluciones como SSL evitamos que esta información viaje sin cifrar, por lo que a cualquier atacante le resultaría imposible (o casi) hacerse con tus datos.
Instalando certificado SSL en hosting con cPanel
Este caso es el más sencillo, ya que normalmente el servicio para incluir certificados viene incluido con el alojamiento, si tenemos un hosting contratado en algún proveedor como sered, haremos lo siguiente:
- Ir al apartado «SSL/TLS Status» de nuestro cPanel y comprobar el estado de nuestros certificados, en caso de que sean autofirmados (estén en rojo), deberemos pulsar el botón «Run AutoSSL», dejamos pasar un momento para que se generen los certificados válidos y a continuación nos aparecerán en color verde:
Estado SSL - Ir a nuestro panel de gestión de WordPress, pulsar en Plugins –> Añadir nuevo y buscar el plugin Really Simple SSL
Plugin SSL Simplemente tendremos que instalarlo, activarlo y habilitar SSL. Una vez hecho, te redireccionará a la versión https de la web.

Instalando certificado SSL en servidor autogestionado
Este es este caso veremos cómo instalar el certificado SSL en un servidor gestionado por nosotros, ya sea un servidor local en nuestra casa u oficina, o un VPS.
Haremos uso de 2 plugins, uno de ellos es el que usamos en el punto anterior con Cpanel:
Instalando WP EncryptionUna vez instalado y activado, el proceso es simple, solo tendremos que ir rellenando los datos que nos pida hasta llegar al punto donde podemos descargarnos los ficheros:

Ahora, estos ficheros hemos de copiarlos al directorio donde queramos alojarlos dentro del servidor, se recomienda alguno tipo /etc/ssl/dominio.
Una vez los archivos en el servidor, modificamos el fichero de configuración del host para hacer referencia a ellos:
nano /etc/apache2/sites-enabled/[archivoConfiguracionHost].conf

Los que están comentados son para otras pruebas que estoy realizando, valdrían los no comentados.
Una vez los certificados copiados al directorio concreto y reiniciado apache con service apache2 restart, activamos SSL con Really Simple SSL tal y como hacíamos en el punto anterior con Cpanel.
Llegados a este punto, habríamos instalado el certificado pero tendríamos que renovarlo manualmente, veamos a continuación cómo automatizar este proceso.
Autorenovación
Por norma general, los certificados obtenidos en Let’s Encrypt tienen una duración de 3 meses, están muy bien dado que son gratuitos, pero tienen la clara pega de que cada 3 meses hay que renovarlos manualmente.
Sin embargo, podemos hacer uso de una aplicación para renovarlos automáticamente llamada certbot, veamos cómo instalarla, usarla y programar una tarea cron para su ejecución.
Instalar CertBot en Linux
En este caso haremos la configuración en una Raspberry pi con un Apache sobre Docker. Podría interesarte saber cómo instalar el sistema operativo Raspbian en Raspberry Pi, o cómo instalar un servidor web WordPress + MySQL usando Docker.
Para instalar CertBot, simplemente ejecutamos la siguiente instrucción en consola:
sudo apt-get install certbot

Usando CertBot en Linux
La primera vez hemos de obtener el certificado de forma manual, ejecutando la siguiente instrucción:
certbot certonly – -webroot -w /var/www/html -d proyectobeta.xyz
Donde -w especifica el directorio donde se encuentran los archivos de nuestro dominio y -d especifica el dominio a asegurar.
Nos pedirá la dirección de mail y aceptar los términos de uso, finalmente veremos que se ha descargado nuestro certificado a la carpeta /etc/letsencrypt/live/proyectobeta.xyz



Apuntando nuestro Apache al certificado
Una vez descargado el certificado, vamos a cambiar la configuración de nuestro apache para que apunte a los ficheros generados:
nano /etc/apache2/sites-enabled/[archivoConfiguracionHost].conf

Se puede observar como anteriormente tenía un certificado generado con el plugin citado anteriormente WP Encryption.
En caso de necesitar activar el módulo SSL en apache, podemos hacerlo con:
sudo a2enmod ssl
Y reiniciamos apache:
service apache2 restart
Si ahora abrimos nuestra web podremos ver el candadito de HTTPS y la validez del certificado:

Renovar certificado SSL con CertBot en Linux
Según la documentación oficial, al instalar certbox automáticamente se nos configura una tarea cron para la renovación automática de los certificados, en mi caso, puedo verla si ejecuto en consola:
systemctl list-timers

En caso de que veamos que los certificados no se renueven automáticamente con esta tarea, siempre podemos añadir la nuestra con:
crontab -e

En este caso se ha programado para ejecutarse a las 01:00 el día 1 de cada mes.
El comando sería algo así como:
certbot renew –pre-hook «service apache2 stop» –post-hook «service apache2 start»
donde el pre-hook se ejecutaría antes del certbot renew (apagamos apache) y el post-hook, después (iniciamos apache).
Listo! Ya tenemos instalado nuestro certificado y nuestra web es accesible por HTTPS, factor que sin duda mejorará la seguridad de nuestros clientes en la web y el posicionamiento seo de la misma.
Saludos!