PF - Com instal·lar un certificat SSL amb Let's Encrypt
En esta píndola formativa aprendrem a implementar HTTPS en un projecte web allotjat en un VPS, utilitzant Let's Encrypt, una autoritat certificadora gratuïta i reconeguda per tots els navegadors moderns.

Important
Per als exemples pràctics utilitzarem Laravel, però els passos descrits són aplicables a qualsevol tecnologia web (WordPress, Symfony, Node.js, web estàtica…), adaptant únicament les rutes i configuracions pròpies de cada cas.
1. Requisits previs
Abans de començar, assegura’t que es compleix tot açò:
- Tens un VPS amb accés per SSH i un usuario amb permisos de sudo (IONOS o similar)
- Tens un domini o subdomini (ex:
exemple.com) - El domini apunta a la IP pública del VPS (en aquesta píndola s'explica com fer-ho a IONOS)
- Es pot comprovar executant `dig +short exemple.com
- El projecte web funciona per HTTP al servidor (ex:
http://exemple.com)- El port 80 està obert. Es pot comprovar amb
sudo ss -tulpn | grep -E ':(80|443)\s' - El servidor web apunta al directori públic del projecte. Es a dir, el DocumentRoot és el propi projecte. Per a aquest exemple, utilitzarem com a directori del projecte
/var/www/html/projecte/public
- El port 80 està obert. Es pot comprovar amb
Domini obligatori
Let’s Encrypt no emet certificats per a una IP (ex: https://1.2.3.4). Necessites un domini.
2. Instal·lació del certificat SSL
A partir d’ací, assumim que el projecte web ja funciona per HTTP i que el domini resol correctament i sols falta realitzar la instal·lació. Les ordres dependran del servidor que estem utilitzant.
Instal·lació i generació del certificat per a nginx:
sudo apt update
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d exemple.com -d www.exemple.com
Instal·lació i generació del certificat per a Apache:
sudo apt update
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d exemple.com -d www.exemple.com
Aquesta instrucció obrirà un assistent que ens farà unes preguntes:
- Indica un correu electrònic
- Accepta els termes
- Selecciona l’opció de redirigir tot el tràfic a HTTPS (recomanat)
Aleshores Certbot:
- Validarà el domini usant la configuració HTTP existent
- Generarà el certificat SSL
- Modificarà automàticament Nginx
- Habilitarà HTTPS automàticament (port 443)
Configuració finalitzada
Si el nostre projecte és una web estàtica o similar, en aquest punt ja tindrem la configuració finalitzada i disponible al port 443 (HTTPS)
3. Ajustos del projecte web (opcional)
Una vegada el HTTPS està actiu, cal revisar la configuració del nostre projecte.
Per exemple, si es tracta d'un projecte Laravel cal editar el fitxer .env per modificar la URL de l'aplicació:
APP_URL=https://exemple.com
I recarregar la configuració per a que s'aplique correctament:
php artisan config:clear