Añadir certificado SSL a NGINX con Let’s Encrypt
Por defecto nuestra web viene sin certificado SSL, para añadirlo podemos usar Let’s Encrypt. Let’s Encrypt es una herramienta gratuita que permite generar certificados SSL para nuestros dominios de una manera rápida.
Para poder tener un certificado SSL necesitamos:
- Un registro A con dominio.es apuntando a la IP de tu servidor.
- Un registro A con www.dominio.es apuntando a la IP de tu servidor.
- NGINX instalado con un Virtualhost con el nombre de tu dominio (/etc/nginx/sites-available/dominio.es).
Instalación de Certbot
Para instalar la utilidad de Let’s Encrypt, añadimos el PPA de certbot y ejecutamos
Si estamos en Ubuntu 20.04 hacer esto--- curl -o- https://raw.githubusercontent.com/vinyll/certbot-install/master/install.sh | bash ---
add-apt-repository ppa:certbot/certbot apt-get update apt-get install python-certbot-nginx
Configurar NGINX
Para configurar NGINX correctamente hemos de editar una línea del host y mirar que esté así
--- server_name dominio.es www.dominio.es ---
Comprobamos la configuración con
nginx -t
Y reiniciamos si hemos tenido que cambiar algo
systemctl restart nginx
Obtener el certificado SSL
Para ello usamos certbot, la herramienta instalada previamente.
sudo certbot --nginx -d dominio.es -d www.dominio.es
Seguimos los pasos con las opciones deseadas (recomiendo redirigir todo al 443 SSL) y ya estaría instalado el certificado.
Añadir la renovación al cron
Para que el certificado se renueve automaticamente, con el comando
crontab -e
Añadimos esta línea al final
0 12 * * * /usr/bin/certbot renew --quiet
Fuentes: nginx.com / digitalocean.com