Cómo instalar certificados SSL con Certbot

Clase 12 de 22Curso de Despliegue de Aplicaciones Python en la Nube

Resumen

Proteger un sitio con HTTPS en el puerto 443 ya es un estándar. Aquí verás, paso a paso, cómo usar Certbot para obtener un certificado SSL gratis de Let's Encrypt en Nginx, habilitar redirecciones a HTTPS y validar la renovación automática sin riesgos.

¿Por qué HTTP en el puerto 80 es inseguro y qué soluciona SSL?

Usar HTTP en el puerto 80 hoy es inseguro. Con SSL, el navegador encripta la información antes de enviarla al servidor. Así, aunque existan servidores intermedios, no podrán leer los datos. Al habilitar HTTPS, el tráfico viaja cifrado y el sitio muestra un certificado válido emitido por Let's Encrypt.

  • HTTP 80 es inseguro. La información viaja en texto plano.
  • HTTPS 443 protege los datos. Todo se cifra entre navegador y servidor.
  • SSL evita que terceros lean la información en tránsito.

¿Cómo instalar Certbot y obtener un certificado de Let's Encrypt en Nginx?

Para generar el certificado se usa Certbot. En servidores Nginx se instala además el complemento específico. Luego, se ejecuta el asistente que solicita un correo electrónico para notificaciones de vencimiento y problemas de seguridad, pide aceptar términos y condiciones y permite optar por compartir métricas de uso.

¿Qué comandos usar para instalar Certbot y el plugin de Nginx?

Ejecuta la instalación con apt.

sudo apt install certbot
sudo apt install python3-certbot-nginx
  • Se muestran los paquetes y se confirma la instalación.
  • Queda disponible el comando sudo certbot.

¿Cómo generar y desplegar el certificado con redirección a HTTPS?

Inicia el asistente indicando el servidor web.

sudo certbot --nginx
  • Ingresa un correo para alertas de vencimiento y seguridad.
  • Acepta términos y condiciones del emisor.
  • Opcionalmente permite notificar que el certificado fue creado para fines estadísticos.
  • Selecciona el dominio a certificar si hay varios configurados.
  • Se genera el certificado y se indican las carpetas donde se crean los archivos.
  • Certbot ajusta la configuración de Nginx creando un segundo bloque de servidor que redirige a HTTPS.
  • Verifica en el navegador usando https:// que el sitio muestre certificado válido emitido por Let's Encrypt.
  • Revisa la validez: el ejemplo indica que vence el 29 de enero.

Consejo práctico: valida que el path de configuración mostrado por Certbot coincida con el sitio configurado previamente.

¿Cómo asegurar la renovación automática del certificado?

La renovación se automatiza con Certbot. Aunque el certificado no esté por vencer, puedes simular el proceso para confirmar que todo está correcto y evitar interrupciones del servicio.

¿Qué hace el comando renew con el flag dry_run?

Ejecuta una simulación sin cambios.

sudo certbot renew --dry_run
  • renew es renovar.
  • El flag --dry_run no modifica el servidor.
  • Simula la renovación del dominio y reporta si sería exitosa.
  • Si la simulación resulta bien, cuando el certificado se acerque a su vencimiento se renovará automáticamente.

En síntesis operativa:

  • Usa Certbot para emitir y desplegar el SSL en Nginx con --nginx.
  • Habilita redirecciones a HTTPS para forzar tráfico cifrado.
  • Prueba la renovación automática con renew --dry_run para asegurar continuidad.

¿Tienes dudas al configurar Certbot en Nginx o al interpretar los mensajes de renovación? Deja tu pregunta en los comentarios y con gusto te ayudo.