Contenido del curso
Configuración de Servidores en la Nube para Despliegue
- 6

Cómo elegir recursos de servidor en AWS
03:32 min - 7

Cómo crear tu cuenta AWS gratis
07:17 min - 8

Cómo crear una instancia EC2 en AWS
12:44 min - 9

Cómo conectarse a un servidor con SSH
08:41 min - 10

Instalar paquetes en Ubuntu con APT
10:13 min - 11

Cómo DNS convierte tu IP en dominio memorable
13:55 min - 12

Certificado SSL gratis con Certbot y Nginx
Viendo ahora
Administración y Optimización de Servidores para Producción
Integración de Servicios Complementarios para Aplicaciones Python
Automatización y CI/CD para Despliegues Python
Certificado SSL gratis con Certbot y Nginx
Resumen
Configurar un certificado SSL en tu servidor es el paso que separa un sitio marcado como "no seguro" de uno que cifra cada byte que viaja por la red. Aquí aprendes a instalar y renovar un certificado gratuito de Let's Encrypt usando Certbot sobre Nginx, ideal si administras tu propio VPS o servidor de producción.
El protocolo HTTP por el puerto 80 ya quedó atrás. Hoy casi cualquier sitio en internet opera bajo HTTPS en el puerto 443, y la única forma de habilitarlo es contar con un certificado válido firmado por una autoridad confiable.
¿Qué es Certbot y por qué se usa con Let's Encrypt?
Certbot es la herramienta oficial que automatiza la generación, instalación y renovación de certificados SSL emitidos por Let's Encrypt, una autoridad certificadora gratuita. En lugar de editar manualmente archivos de configuración, Certbot detecta tu servidor web, genera el certificado y modifica los bloques de Nginx por ti [0:18].
¿Qué hace exactamente un certificado SSL? Cifra la información entre el navegador y el servidor. Si alguien intercepta el tráfico en medio del camino, no podrá leerlo porque viaja encriptado.
¿Cómo se instala Certbot en un servidor con Nginx?
La instalación requiere dos paquetes principales: el propio Certbot y un plugin que le permite hablar con Nginx. El plugin depende de Python 3, así que se instala junto con la herramienta principal.
apt install certbot: instala el cliente base.python3-certbot-nginx: añade el soporte para Nginx [0:32].- Confirma los paquetes y deja que el gestor descargue todo.
Una vez instalado, dispones de un comando nuevo: sudo certbot --nginx. Ese flag le indica a Certbot que detecte automáticamente los server blocks de Nginx y aplique los cambios necesarios.
¿Cómo generar el certificado SSL paso a paso?
Al ejecutar sudo certbot --nginx, la herramienta inicia un asistente interactivo que pide tres datos clave antes de emitir el certificado [0:51].
- Un correo electrónico personal para recibir avisos de vencimiento o alertas de seguridad.
- La aceptación de los términos y condiciones de Let's Encrypt.
- Una confirmación opcional para compartir estadísticas anónimas con la Electronic Frontier Foundation.
Después, Certbot lista los dominios configurados en Nginx y te pide elegir cuál proteger. Si solo tienes uno, seleccionas el número 1; si administras varios, debes leer con atención y marcar los que correspondan [1:32].
¿Dónde quedan guardados los archivos del certificado?
Cuando termina el proceso, Certbot muestra un mensaje confirmando que el certificado fue desplegado y te indica las rutas exactas de los archivos generados, además del path del bloque de configuración modificado.
Si abres el archivo de Nginx ubicado en tu carpeta de despliegue, vas a ver dos server blocks: el original que tú creaste y uno nuevo que Certbot añadió para forzar la redirección de HTTP a HTTPS. Esto garantiza que cualquier visitante que entre por el puerto 80 sea reenviado al 443 automáticamente [2:01].
¿Por qué aparecen dos bloques server en Nginx después de Certbot? Uno escucha en el puerto 80 para redirigir el tráfico inseguro, y otro escucha en el 443 sirviendo el sitio bajo HTTPS con el certificado activo.
¿Cómo validar y renovar automáticamente el certificado?
Al visitar tu sitio con https://, el navegador ya muestra el candado de conexión segura. Si revisas los detalles del certificado, encontrarás que fue emitido por Let's Encrypt y verás su periodo de validez. En el ejemplo trabajado, vence el 29 de enero, lo que confirma la regla general de Let's Encrypt: cada certificado dura aproximadamente 90 días [2:23].
Para evitar caducidades inesperadas, existe el comando de renovación.
sudo certbot renew: ejecuta la renovación real cuando el certificado está próximo a vencer.sudo certbot renew --dry-run: simula la renovación sin tocar nada en el servidor.
El flag dry run es la mejor forma de auditar tu configuración. Lanza una simulación contra los servidores de Let's Encrypt y te confirma si la renovación funcionará llegado el momento. Si la simulación es exitosa, puedes confiar en que el certificado se renovará solo cuando se acerque la fecha de expiración [2:54].
¿Por qué importa que el tráfico viaje cifrado?
Un certificado SSL no solo cambia un icono en el navegador. Cuando un usuario carga tu sitio bajo HTTPS, el navegador encripta toda la información antes de enviarla. Esto significa que si un actor malicioso intercepta paquetes en cualquier punto intermedio de la red, lo único que verá es texto cifrado sin valor.
Esa capa de cifrado protege contraseñas, formularios, tokens de sesión y cualquier dato sensible que tu aplicación maneje. Por eso, configurar SSL ya no es opcional ni un lujo: es el mínimo de higiene que cualquier servidor en producción debe cumplir.
Ahora te toca a ti. Instala Certbot en tu servidor, genera tu primer certificado de Let's Encrypt y verifica con --dry-run que la renovación automática quede lista. ¿En qué paso te trabaste? Cuéntalo en los comentarios.