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

Permalink del post.

Víctor Moreno

Read more posts by this author.