Cómo obtener un certificado SSL (🎁 HTTPS Gratis) para tu proyecto web
Tiempo de lectura: 3.19 minutos
Lo que encontrarás en este artículo
Empecemos viendo qué son los certificados SSL, y por qué es importante el protocolo HTTPS.
Finalmente veremos cómo obtener un certificado gratuito y cómo implementar HTTPS en nuestros proyectos web.
Qué es SSL y HTTPS
SSL
Un certificado SSL (Secure Sockets Layer) es un archivo digital que sirve para cifrar la comunicación entre un navegador (cliente) y un servidor web.
Garantiza tres cosas principales:
- 🔒 Confidencialidad — los datos viajan cifrados.
- ✅ Autenticidad — el navegador puede verificar que el sitio es realmente quien dice ser.
- 🛡️ Integridad — evita que la información sea alterada en tránsito.
HTTPS
El protocolo HTTPS (HyperText Transfer Protocol Secure) es la versión segura de HTTP, y usa SSL/TLS para cifrar las conexiones.
Antes de su adopción, todo el tráfico web era HTTP, y por tanto sin cifrado.
Esto significaba que cualquiera en la ruta de conexión (por ejemplo, en una red pública o un ISP) podía:
- 📡 Leer datos: contraseñas, formularios, cookies, etc.
- ✍️ Modificar contenido: inyectar scripts o anuncios maliciosos.
- 🎭 Suplantar servidores (phishing o MITM): un atacante podía hacerse pasar por el sitio original.
👉 Es decir, todos los sitios estaban expuestos, y SSL/HTTPS nació precisamente para proteger la integridad y confidencialidad en la web.
TLS
SSL fue el protocolo de cifrado original creado por Netscape en los 90s para cifrar la comunicación web.
Sin embargo, SSL quedó obsoleto y fue reemplazado por TLS (Transport Layer Security), su versión mejorada.
💡 Hoy en día, cuando decimos “certificado SSL”, en realidad casi siempre se trata de un certificado TLS, solo que el término SSL se mantiene por costumbre.
Es fácil de identificar en la barra de direcciones:
http://programacionymas.com ❌ inseguro
https://programacionymas.com ✅ usa certificado SSL/TLS
Resumen
Aquí la diferencia clara:
- HTTPS ✅ es el protocolo de comunicación (una versión segura de HTTP).
- SSL/TLS 🔒 es el protocolo de cifrado que HTTPS usa internamente para asegurar esa comunicación.
- El certificado SSL 📄 es el archivo digital que permite usar SSL/TLS.
Obtén un certificado gratuito
Hoy vamos a obtener un certificado SSL gratuito de Let’s Encrypt usando Certbot.
Para darte un poco más de contexto:
- Let’s Encrypt → Es la autoridad certificadora (CA) que emite certificados SSL/TLS gratuitos. Es el servicio que valida que eres dueño del dominio y firma el certificado.
- Certbot → Es una herramienta creada por la Electronic Frontier Foundation (EFF) para facilitar la obtención, instalación y renovación de estos certificados.
Veamos paso a paso cómo obtener el certificado e instalarlo.
Nota: Los comandos en esta guía son para distribuciones Ubuntu/Debian.
Paso 0: Antes
Antes de los cambios, la situación luce así:
Esto es porque los navegadores marcan los sitios sin HTTPS como no seguros.
Para esta guía, vamos a trabajar con este dominio a modo de ejemplo.
Paso 1: Instalar Certbot
Este comando instala Certbot y su complemento para Apache:
sudo apt install certbot python3-certbot-apache
certbot: solicita y gestiona certificados de Let’s Encrypt.python3-certbot-apache: plugin que permite a Certbot configurar automáticamente Apache (editar VirtualHosts, activar HTTPS).
Paso 2: Preparar tu VirtualHost
Un VirtualHost es una configuración en tu servidor web (como Apache).
Cada VirtualHost puede tener su propio dominio, directorio de archivos, certificados SSL, logs, etc.
En Ubuntu, los VirtualHosts de Apache se ubican en:
/etc/apache2/sites-available/
Puedes dirigirte a esta carpeta y listar los archivos para confirmar cuál se asocia con tu dominio.
En algunas ocasiones no se ha creado un archivo de configuración adicional, sino que se usa el que viene por defecto.
Lo que debes hacer es modificar el archivo de configuración:
sudo nano /etc/apache2/sites-available/000-default.conf
Y asegurar que tanto ServerName como ServerAlias se encuentren declarados.
Si no los encuentras puedes agregarlos, de esta manera:
<VirtualHost *:80>
ServerName theclosetcodeluxe.net
ServerAlias www.theclosetcodeluxe.net
## ...
</VirtualHost>
Luego guardas los cambios y recargas Apache:
sudo systemctl reload apache2
Paso 3: Ejecutar Certbot
Ahora emite tu certificado SSL con este comando:
sudo certbot --apache -d tu-dominio.com -d www.tu-dominio.com
Debes reemplazar el dominio 2 veces. Y también puedes usar .net o una terminación diferente:
sudo certbot --apache -d theclosetcodeluxe.net -d www.theclosetcodeluxe.net
Tan pronto ejecutes el comando:
- Certbot te preguntará por un correo
- Debes aceptar los términos y condiciones, escribiendo Y (de Yes) y presionando ENTER
Completando esto, Certbot procederá a:
- Crear
/etc/apache2/sites-available/000-default-le-ssl.conf - Habilitar HTTPS
Si todo salió bien, verás un mensaje como el siguiente:
Requesting a certificate for theclosetcodeluxe.net and www.theclosetcodeluxe.net
Y finalmente:
Successfully received certificate.
Congratulations! You have successfully enabled HTTPS on https://theclosetcodeluxe.net and https://www.theclosetcodeluxe.net
Paso 4: Verificar renovación
Con este comando podemos verificar que la renovación del certificado ocurrirá exitosamente:
sudo certbot renew --dry-run
Tras ejecutarlo, a los pocos segundos deberías ver un mensaje como el siguiente:
Congratulations, all simulated renewals succeeded
Paso 5: Resultado final
Finalmente visita tu dominio, y deberías ver que ya aparece protegido por un candado:
Bonus
Si bien tu sitio ya es accesible usando https, también es aún accesible usando http (protocolo no seguro).
Esto puede resultar confuso para las personas que visitan tu sitio.
Por tanto, lo ideal es redirigir las visitas que recibes como http hacia https.
En este artículo te explico cómo redirigir tu dominio para usar HTTPS.
Conclusión
Como ves, es importante contar con un cifrado SSL (y habilitar el protocolo HTTPS) para que tu sitio esté seguro.
Si esta guía te ha sido de ayuda, te invito a visitar mis cursos de programación.
Así mismo, recuerda que toda pregunta es bienvenida.