
Después de haber visto cómo instalar y configurar Nginx como proxy inverso y reforzar la seguridad con Crowdsec, en este tutorial os explicaré cómo generar un certificado SSL de Let’s Encrypt de forma gratuita.
Como recordatorio, Let’s Encrypt es una autoridad de certificación gratuita que permite obtener certificados SSL con una validez de 3 meses.
Para Windows, os recomiendo utilizar Certify The Web para generar certificados de Let’s Encrypt.
Para este tutorial, he utilizado un servidor con Ubuntu en el que tengo instalado Nginx y que utilizo como proxy inverso.
Tabla de contenido
Instalar Certbot en Ubuntu
Para generar certificados en Ubuntu (y en Linux en general), se utiliza Certbot.
Certbot es un programa que se encarga de realizar las comprobaciones de validación del dominio para obtener el certificado SSL y configurar el servidor web —el «virtualhost», para ser más precisos—; es compatible con numerosos servidores web, entre ellos Apache, Nginx…
Certbot también se encargará de la renovación automática de los certificados SSL.
Primer paso: instalar Certbot para Nginx en el servidor. Para ello, introduce el siguiente comando:
sudo apt install python3-certbot-nginx -y
Certbot ya está instalado; ahora vamos a generar un certificado SSL para un host virtual en Nginx.
Generar un certificado de Let’s Encrypt para Nginx con Certbot
Para ilustrar este tutorial, voy a utilizar el host virtual que se muestra a continuación:

Es importante indicar el parámetro en la configuración del host virtualserver_name.
Como se puede ver en la configuración, el host virtual está configurado actualmente en el puerto 80.
Para ejecutar el programa Certbot, utiliza el siguiente comando:
sudo certbotLa primera vez que lo ejecutes, debes:
- Indicar una dirección de correo electrónico
- Aceptar el contrato del servicio
- Indicar si desea compartir la dirección de correo electrónico.

A partir de ahí, así es como se procede cuando se desea generar un certificado:
Aparece la lista de centros; introduce el número del centro y confirma.

Espera mientras se procesa la solicitud del certificado…

Una vez generado el certificado, el asistente pregunta si se desea redirigir http a https; en el ejemplo, elijo la opción 2.

Aparece un mensaje de confirmación y recuperamos el control de la consola.

Si volvemos a consultar la configuración del virtualhost, podemos ver que la configuración HTTPS está a la escucha en el puerto 443 y que el tráfico del puerto 80 se redirige (301) al sitio web mediante HTTPS.

Renovación automática de los certificados SSL
Por defecto, Certbot renueva automáticamente el certificado antes de su caducidad y lo sustituye.
A continuación, se puede ver la tarea programada (cron).

