Sí, toca una entrada auto-referent del blog, des d'avui ja he aconseguit activar l'SSL pel blog, amb un certificat proporcionat per let's encrypt.
Let's encrypt és una Autoritat Certificadora (CA) creada entre d'altres per mozilla, electronic frontiers foundation, cisco i akamai, que pretén que tot el contingut a internet viatgi xifrat (amb SSL). Qualssevol es pot generar un certificat per a que la comunicació amb la seva web viatgi xifrada mitjançant SSL, però amb els certificats auto-generats apareix el següent error:
Per tal d'obtenir un certificat "bo" que no doni aquests missatges al navegador, fins ara calia que una entitat certificadora "validés" que realment ets qui diu el teu certificat, i per a fer aquesta validació cobren uns bons calerons, fet que fa que "només" tinguin webs amb connexió segura entitats bancàries i empreses diverses, però els usuaris "normals" no acostumen a tenir la connexió segura a les seves webs. (Fins i tot la seu electrònica de la Seguridad Social fa servir un certificat generat per la FNMT que fa saltar aquesta advertència.
L'objectiu principal de let's encrypt és fer de la web un lloc més segur facilitant certificats signats per a tothom que ho necessiti. De moment estan en fase de proves, i van donant certificats a la gent que s'ha apuntat prèviament al seu web.
Proporcionen un certificat vàlid per 3 mesos, però també una eina que fa molt senzilla l'obtenció del certificat. Per a obtenir-lo només cal seguir les instruccions que fan arribar a un correu i ja està.
Un cop generat el certificat, ha fet falta fer uns canvis a la configuració del apache per tal que el blog vagi per https. He definit un nou "site" que es diu blog-ssl a /etc/apache2/sites-available copiant l'original i fent els següents canvis:
per
i afegint:
SSLEngine On SSLCertificateFile /etc/letsencrypt/live/marc.bres.cat/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/marc.bres.cat/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/marc.bres.cat/fullchain.pem
Al etc/apache2/ports.conf ha fet falta definir el següent per a escoltar pel port 443 amb ssl.
NameVirtualHost *:443 Listen 443
Dintre del directori on tenim instal·lat el blog, creem el fitxer .htaccess i afegim el següent codi per tal que les peticions http les reenvii cap a https:
RewriteEngine on RewriteRule (.*) https://marc.bres.cat/$1 [R=301,L]
Ja només falta activar el site nou amb a2ensite blog-ssl
i recarregar la configuració d'apache service apache2 reload
Un cop fets aquests canvis, al entrar al blog em sortia una advertencia de que tenia contingut mixt, una part en ssl i una altra sense xifrar. Per a solucionar-ho ha fet falta canviar la URL a la configuració del wordpress:
I per les imatges de les entrades antigues, es veu que el wordpress desa a la base de dades la URL amb http, m'ha fet falta executar la següent comanda al SQL (que he tret d'aquest altre blog) per a arreglar-ho:
UPDATE wp_posts SET post_content = ( Replace (post_content, 'src="http://', 'src="//') ) WHERE Instr(post_content, 'jpeg') > 0 OR Instr(post_content, 'jpg') > 0 OR Instr(post_content, 'gif') > 0 OR Instr(post_content, 'png') > 0;
En una altra entrada explicaré el muntatge per a renovar el certificat fàcilment.