Cómo proteger Nginx en Ubuntu con Let’s Encrypt

¿Alguna vez te has encontrado con el mensaje “Este sitio web no es seguro”? No dejes que esto afecte tus sitios y aplicaciones web, en este tutorial aprenderemos a obtener un certificado SSL de forma gratuita con el uso de Let’s Encrypt.
Let’s Encrypt es una autoridad certificada (CA) que nos brinda una manera fácil de poder obtener un certificado de seguridad TLS/SSL, esta entidad nos provee con un cliente llamado Certbot que nos automatizara la mayor parte del proceso de obtención de nuestros certificados. Esto no se limita a solo un sitio, Certbot nos permite obtener certificados para varios dominios dentro de nuestro servidor utilizando Nginx. Todo el proceso es bastante sencillo y solo requiere de 3 simples pasos.
A continuación, podremos encontrar los pasos necesarios para habilitar nuestro certificado y configurarlo dentro de nuestro servidor con Nginx, en nuestro caso tendremos un servidor con Ubuntu y Nginx.

Primer paso, instalar Certbot

Para poder obtener nuestro certificado primero necesitaremos instalar el cliente de Certbot, esto lo haremos con el siguiente comando.
sudo apt install certbot python3-certbot-nginx

Segundo paso, configurar Nginx

Certbot necesita poder encontrar un bloque de servidor valido para poder implementar el certificado de seguridad y utilizar el puerto 443. Antes de solicitar nuestro certificado debemos de revisar que tengamos configurado nuestro sitio dentro de los bloques de Nginx. Para esto iremos al archivo de configuración que se encuentra en /etc/nginx/sites-available y revisaremos nuestro archivo de configuración en nuestro caso utilizaremos ejemplo.com a manera de ejemplo.
sudo nano /etc/nginx/sites-available/ejemplo.com
Una vez abierto nuestro archivo de configuración, buscaremos la sección que contiene la opción de server_name, acá revisaremos que se encuentre nuestro dominio y su www. respectivamente.
...
server_name ejemplo.com www.ejemplo.com;
...

Tercer paso, obtener nuestro certificado

Certbot nos brinda un comando para poder obtener de manera fácil nuestro certificado, únicamente debemos especificarle nuestro dominio previamente configurado.
sudo certbot --nginx -d ejemplo.com -d www.ejemplo.com
¡Listo! Una vez ejecutado el comando podremos observar si nuestro certificado fue instalado correctamente observando el Output que nos brinda Certbot, si todo salió correctamente podremos verificar que nuestro sitio ahora cuenta con el candado de sitio seguro y el trafico esta siendo enviado por HTTPS.

Resolución de problemas

Si experimentaste algún problema solicitando el certificado, te recomiendo que hagas las modificaciones necesarias y pruebes tu configuración con el siguiente comando, ya que el servidor de Let’s Encrypt únicamente permite 5 solicitudes por hora, de esta forma no tendrás que esperar para estar probando que todo este correctamente.
sudo certbot --nginx -d ejemplo.com -d www.ejemplo.com --staging

Renovación de certificados

Certbot en sus versiones recientes realiza la renovación de manera automática, pero siempre puedes verificar que este habilitado con el siguiente comando
sudo systemctl status certbot.timer
Y puedes probar la renovación con este comando
sudo certbot renew --dry-run

Conclusión

En conclusión, obtener un certificado de seguridad de manera gratuita para nuestros sitios web o aplicaciones web con la herramienta de Certbot nos facilita y automatiza gran parte del proceso haciéndolo bastante sencillo de manejar. ¿Qué esperas para asegurar tus sitios y aplicaciones web? ¡Manos a la obra!

Leave a Comment

Scroll to Top