Si després de configurar el domini a l'imatge de WordPress vols configurar el teu bloc com un lloc segur amb un certificat SSL, el que has de fer és seguir els passos que t'expliquem a continuació.
Hauràs d'instal·lar Certbot per adquirir un certificat gratuït de Let's Encrypt. Per realitzar aquests passos caldrà que et connectis per SSH al servidor de WordPress que hem creat i configurar-lo com expliquem a continuació.
Primers passos
El primer que hauràs de fer abans de la instal·lació del certificat, és configurar el domini a WordPress. Per fer-ho, hauràs de seguir els passos que s'indica en aquest altre tutorial Añadir dominio en la imagen de WordPress. És important que quan afegeixis el domini a WordPress, en aquesta ocasió, posis HTTPS en comptes de HTTP:
Un cop desats els canvis, la web deixarà de funcionar. És llavors quan hauràs de connectar-te per SSH al servidor i fer els passos següents.
Instal·lació manual del certificat SSL
Instal·lar els següents paquets per gestionar els certificats amb Certbot:
# apt install certbot python3-certbot-nginx -y
Després hauràs de modificar el fitxer de configuració NGINX del site:
# nano /etc/nginx/sites-enabled/default
I canviar la línia server_name pel teu domini. Exemple (afegir amb www és opcional, no cal):
server_name domini.cat www.domini.cat;
Guarda i reinicia el servei Nginx:
# systemctl reload nginx
I finalment, genera el certificat amb:
# certbot --authenticator webroot -w /var/www/html/wordpress/ --redirect --installer nginx -d midominio.es
Si has afegit www, hauràs d'executar això:
# certbot --authenticator webroot -w /var/www/html/wordpress/ --redirect --installer nginx -d midominio.es -d www.midominio.es
Instal·lació automàtica del certificat SSL
Per automatitzar tot el procés, hem creat un script per executar la instal·lació amb una sola ordre. Comprova el teu sistema operatiu executant:
# hostnamectl
Descarrega l'script corresponent per configurar SSL a Nginx utilitzant la imatge 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
I la sintaxi per generar el certificat seria:
# ./wp-nginx-ssl-u20.sh domini email [www]
Per exemple:
# ./wp-nginx-ssl.sh clouding.io no-reply@clouding.io
Si a més vols afegir un àlies per a www, pots executar afegint l'opció www que es opcional:
# ./wp-nginx-ssl.sh clouding.io no-reply@clouding.io www
El correu electrònic ha de ser un que estigui operatiu i el domini i alies per www ha d'apuntar al servidor.
Configurar Nginx per superar els tests de seguretat (Opcional)
Amb aquests cinc paràmetres obtindràs una puntuació A a www.webpagetest.org, però per tenir el màxim nivell amb un A+ hauràs de configurar un header addicional per "Content Security Policy", el qual és força complicat, ja que hauràs d'identificar i especificar totes les fonts fiables que utilitza el teu lloc.
add_header Content-Security-Policy "default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';";
Aquest darrer cas necessita moltes proves i errors fins a trobar la configuració òptima que no bloquegi el teu servidor. Si no sabeu com utilitzar aquesta política, penseu que no és del tot necessària per tenir una bona puntuació de seguretat.
Deshabilitar versions obsoletes de TLS als certificats (Opcional)
Actualment, les versions TLS 1.0 i TLS 1.1 es consideren obsoletes i això fa que no sigui segur utilitzar aquestes versions del protocol TLS. Per això hauràs d'editar el següent fitxer:
# vi /etc/letsencrypt/options-ssl-nginx.conf
Edita la variable "ssl_protocols" per deixar-la com el següent exemple:
ssl_protocols TLSv1.2 TLSv1.3;
Amb aquests canvis hauries de passar tots els tests de SSL i seguretat del teu servidor web.