Si tras configurar el dominio en nuestra imagen de WordPress quieres configurar tu blog como un sitio seguro con un certificado SSL, lo que debes de hacer es seguir los pasos que te contamos a continuación.
Deberás instalar Certbot para instalar un certificado gratuito de Let’s Encrypt. Para realizar estos pasos será necesario que te conectes por SSH al servidor de WordPress que hemos creado y configurarlo como explicamos a continuación.
Primeros pasos
Lo primero que tendrás que hacer antes de la instalación del certificado, es configurar el dominio en WordPress. Para ello, tendrás que seguir los pasos que se indica en este otro tutorial Añadir dominio en la imagen de WordPress. Es importante, que cuando añadas el dominio en WordPress, en esta ocasión, pongas HTTPS en vez de HTTP:
Una vez guardados los cambios, la web dejará de funcionar. Es entonces cuando tendrás que conectarte por SSH al servidor y realizar los siguientes pasos.
Instalación manual del certificado SSL
Instalar los siguientes paquetes para gestionar los certificados con Certbot:
# apt update && apt install python3-certbot-nginx -y
Luego tendrás que modificar el fichero de configuración NGINX del site:
# nano /etc/nginx/sites-enabled/default
Y cambiar la línea server_name por tu dominio y/o subdominios. Ejemplo (añadir con www es opcional, no es necesario):
server_name midominio.es www.midominio.es;
Guarda y reinicia el servicio Nginx:
# systemctl reload nginx
Y finalmente, genera el certificado con lo siguiente (si solo has añadido un registro):
# certbot --redirect --installer nginx -d midominio.es
Si has añadido www o otro, deberás añadirlo siguiendo el patrón:
# certbot --redirect --installer nginx -d midominio.es -d www.midominio.es
Al ejecutarlo, te solicitará la introducción de un correo electrónico, luego la aceptación de los terminos y condiciones. Por último, también te preguntará si deseas suscribirte a la newsletter de Let's Encrypt (opcional). Una vez completado, certbot adquirirá y configurará el certificado automáticamente en el servidor Web.
Instalación mediante script del certificado SSL
Para automatizar todo el proceso, hemos creado un script para ejecutar la instalación con un solo comando. Comprueba tu sistema operativo ejecutando:
# hostnamectl
Descarga el script para configurar SSL en Nginx en la imagen de WordPress:
# wget https://gitlab.com/clouding.io-tech.support/certbot-ssl-images/raw/master/wp-nginx-ssl.sh # chmod u+x wp-nginx-ssl.sh
Y la sintaxis para generar el certificado sería:
# ./wp-nginx-ssl.sh dominio e-mail [www]
Por ejemplo:
# ./wp-nginx-ssl.sh clouding.io no-reply@clouding.io
Si además quieres añadir un alias para www, puedes ejecutarlo añadiendo la opción www que es opcional:
# ./wp-nginx-ssl.sh clouding.io no-reply@clouding.io www
El e-mail debe ser uno que esté operativo y el dominio y el alias para www debe apuntar al servidor.
Configurar Nginx para superar los test de seguridad (Opcional)
Con estos 5 parámetros obtendrás una puntuación de A en www.webpagetest.org, pero para tener el máximo nivel con un A+ tendrás que configurar un header adicional para "Content Security Policy", el cual es bastante complicado, ya que deberás identificar y especificar todas las fuentes fiables que utiliza tu sitio.
add_header Content-Security-Policy "default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';";
Este último caso necesita de muchas pruebas y errores hasta encontrar la configuración óptima que no bloquee tu servidor. Si no estás seguro sobre cómo utilizar esta política, piensa que no es del todo necesaria para tener una buena puntuación de seguridad.
Deshabilitar versiones obsoletas de TLS en los certificados (Opcional)
Actualmente las versiones SSLv1, SSLv2, SSLv3, TLS 1.0 y TLS 1.1 se consideran obsoletas y esto hace que no sea seguro utilizar estas versiones del protocolo TLS. Para ello deberás editar el siguiente archivo:
# vi /etc/letsencrypt/options-ssl-nginx.conf
Edita la variable "ssl_protocols" para dejarla como el siguiente ejemplo:
ssl_protocols TLSv1.2 TLSv1.3;
Con estos cambios deberías pasar todos los test de SSL y seguridad de tu servidor web.