DEV Community

JPBlancoDB
JPBlancoDB

Posted on • Updated on • Originally published at jpblanco.dev

Configurando LetsEncrypt con Nginx en Ubuntu

Traducido al: English

En primer lugar, deberíamos preguntarnos para que sirve LetsEncrypt y nada mejor que citarlos para entender:

Let’s Encrypt is a free, automated, and open Certificate Authority.

En resumen, con LetsEncrypt obtenemos un certificado de dominio seguro, el famoso SSL para nuestro sitio y de forma gratuita. Todo esto gracias a la Linux Foundation.

Hecha ya la introducción, pasemos a lo que nos interesa que es como lo configuramos en un servidor linux con Nginx

  1. Instalamos certbot en el servidor:
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
Enter fullscreen mode Exit fullscreen mode
  1. Configuramos el archivo de Nginx: (En este caso como ejemplo usamos el archivo default)
sudo nano /etc/nginx/sites-available/default
Enter fullscreen mode Exit fullscreen mode

Buscamos la linea que contiene server_name y la reemplazamos por:

server_name dominio.com www.dominio.com;
Enter fullscreen mode Exit fullscreen mode

Verificamos que la configuración de nginx sea correcta con:

sudo nginx -t
Enter fullscreen mode Exit fullscreen mode
  1. Reiniciamos Nginx:
sudo systemctl reload nginx
Enter fullscreen mode Exit fullscreen mode
  1. Instalando el certificado:
sudo certbot --nginx -d dominio.com -d www.dominio.com
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
sudo nano /etc/nginx/sites-available/default
Enter fullscreen mode Exit fullscreen mode

Agregamos dentro del bloque server:

ssl_dhparam /etc/ssl/certs/dhparam.pem;
Enter fullscreen mode Exit fullscreen mode

Volvemos a verificar que nos haya quedado bien:

sudo nginx -t
Enter fullscreen mode Exit fullscreen mode

Reiniciamos Nginx nuevamente:

sudo systemctl reload nginx
Enter fullscreen mode Exit fullscreen mode
  1. Configuramos la renovación automática del certificado:
sudo crontab -e
Enter fullscreen mode Exit fullscreen mode

En nuestro archivo agregamos:

15 3 \* \* \* /usr/bin/certbot renew –quiet
Enter fullscreen mode Exit fullscreen mode

De esta forma nos aseguramos que se renueve de forma automática nuestro certificado, dado que caduca cada 90 días.

Listo! Ya tenemos nuestro SSL configurado y funcionando!

Por último, si queremos verificar el estado de nuestros certificados con certbot para verificar la fecha de expiración o por ejemplo los dominios que tenemos registrados en nuestro servidor con LetsEncrypt, debemos ejecutar lo siguiente:

certbot certificates
Enter fullscreen mode Exit fullscreen mode

Cualquier duda o consulta no duden en dejar sus comentarios o bien me pueden consultar vía twitter.

Saludos!

Traducido al inglés

Discussion (2)

Collapse
dineshrathee12 profile image
Dinesh Rathee

LetsEncrypt have revoked around 3 million certs last night due to a bug that they found. Are you impacted by this, Check out ?

DevTo
[+] dev.to/dineshrathee12/letsencrypt-...

GitHub
[+] github.com/dineshrathee12/Let-s-En...

LetsEncryptCommunity
[+] community.letsencrypt.org/t/letsen...

Collapse
rmpato profile image
Pato

Sos un geniooooooo <3