Configurando LetsEncrypt con Nginx en Ubuntu

1 minute read

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
    
  2. Configuramos el archivo de Nginx: (En este caso como ejemplo usamos el archivo default)

    sudo nano /etc/nginx/sites-available/default
    

    Buscamos la linea que contiene `server_name` y la reemplazamos por:

    server_name dominio.com www.dominio.com;
    

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

    sudo nginx -t
    
  3. Reiniciamos Nginx:

    sudo systemctl reload nginx
    
  4. 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
    

    Agregamos dentro del bloque server:

    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    

    Volvemos a verificar que nos haya quedado bien:

    sudo nginx -t
    

    Reiniciamos Nginx nuevamente:

    sudo systemctl reload nginx
    
  5. Configuramos la renovación automática del certificado:

    sudo crontab -e
    

    En nuestro archivo agregamos:

    15 3 \* \* \* /usr/bin/certbot renew –quiet
    

    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

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

¡Saludos!