Cómo tener SSL en tu sitio web de forma gratuita con CERTBOT
¿Qué es HTTPS y por qué es tan importante?
HTTPS (HyperText Transfer Protocol Secure) es la versión "sellada" y "cifrada" de una carta. Cuando tu sitio web usa HTTPS, toda la comunicación entre el navegador del usuario y tu servidor está encriptada. Esto significa que tiene:
- Seguridad: Nadie puede "espiar" la información que se envía (contraseñas, datos bancarios, mensajes, etc.).
- Confianza: El candadito verde y el HTTPS le dicen a tus visitantes que tu sitio es legítimo y seguro.
- SEO (¡y Google te ama!): Los motores de búsqueda como Google dan preferencia a los sitios con HTTPS, lo que puede ayudar a que tu sitio aparezca más arriba en los resultados.
- Funcionalidades modernas: Muchas características web avanzadas (como la geolocalización o las Service Workers) solo funcionan en sitios HTTPS.
Y para tener HTTPS, necesitás un certificado SSL/TLS. Tradicionalmente, eran caros y complicados de instalar. ¡Pero eso cambió gracias a Let's Encrypt y Certbot!
¡Conociendo a Let's Encrypt y Certbot!
Let's Encrypt es una autoridad de certificación gratuita, automatizada y abierta, respaldada por grandes de la tecnología. Su misión es hacer que el HTTPS sea accesible para todos. Ellos son quienes emiten los certificados SSL/TLS.
Certbot es la herramienta más popular, desarrollada por la Electronic Frontier Foundation (EFF), que automatiza todo el proceso de obtener e instalar un certificado Let's Encrypt en tu servidor. Es como tu asistente personal para la seguridad web.
En resumen:
- Let's Encrypt te da el certificado.
- Certbot te ayuda a conseguirlo y configurarlo en tu servidor (como Nginx o Apache) de forma sencilla.
Tu primer certificado con Certbot (¡un ejemplo con Nginx!)
Aunque los pasos exactos pueden variar un poco dependiendo de tu sistema operativo y tu servidor web, la idea general es la misma. Vamos a ver un ejemplo para un servidor Nginx en un sistema tipo Linux (como Ubuntu):
Paso 1: Preparar tu servidor Asegurate de que tu dominio esté apuntando correctamente a la IP de tu servidor y que tu configuración de Nginx esté lista para servir tu sitio web a través del puerto 80 (HTTP). Certbot necesita poder acceder a tu dominio por HTTP para verificar que sos el dueño.
Paso 2: Instalar Certbot Certbot se instala como cualquier otro programa en tu sistema. Para Ubuntu, por ejemplo, sería algo así:
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
(El snap
es una forma sencilla de instalar paquetes en Linux, si no funciona con snap proba cambiando por apt).
Paso 3: ¡Obtener e instalar tu certificado! Aquí viene la magia. Si tenés Nginx funcionando, Certbot puede incluso modificar tu configuración por vos. Ejecutá este comando:
sudo certbot --nginx
Certbot te hará algunas preguntas:
- Te pedirá tu dirección de correo electrónico (para avisos de renovación y seguridad).
- Te preguntará si aceptás los términos de servicio.
- Detectará los dominios configurados en Nginx y te preguntará para cuál querés el certificado (por ejemplo,
tudominio.com
ywww.tudominio.com
). - Finalmente, te preguntará si querés que Nginx redirija automáticamente el tráfico HTTP a HTTPS (¡esto es muy recomendable!).
¡Y listo! Certbot se encargará de comunicarse con Let's Encrypt, obtener el certificado, instalarlo en tu configuración de Nginx y reiniciar Nginx para que los cambios tomen efecto.
¡Ahora, cuando vayas a https://tudominio.com
en tu navegador, deberías ver el candadito verde!
La renovación automática: ¡Lo mejor de Certbot!
Los certificados de Let's Encrypt son válidos por 90 días. "¡Ay, no! ¿Tengo que hacer esto cada 3 meses?", podrías pensar. ¡Para nada!
Certbot viene con una funcionalidad de renovación automática. Una vez instalado, configura una tarea (generalmente un cron job
) en tu sistema que se ejecuta dos veces al día (o algo similar) para verificar si tus certificados necesitan ser renovados. Si es así, los renueva silenciosamente antes de que expiren. ¡Es magia pura!
Podés probar la renovación con un "simulacro" para asegurarte de que funciona: