Cómo obtener un certificado SSL (🎁 HTTPS Gratis) para tu proyecto web

Tiempo de lectura: 3.19 minutos

Póster del artículo Cómo obtener un certificado SSL (🎁 HTTPS Gratis) para tu proyecto web

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í:

Cómo se ve una web sin HTTPS

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:

Cómo se ve una web segura con HTTPS

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.

# ssl # https # apache

Logo de Programación y más

Comparte este post si te fue de ayuda 😉.

Regístrate

Accede a todos los cursos, y mejora tus habilidades 🚀.

Cursos Recomendados 🚀

Imagen para el curso Laravel y Android

Laravel y Android

Curso intensivo. Incluye el desarrollo de una API, su consumo, y autenticación vía JWT. También vemos Kotlin desde 0.

Iniciar curso
Imagen para el curso Aprende Javascript

Aprende Javascript

Domina JS con este curso práctico y completo! Fundamentos, ejemplos reales, ES6+, POO, Ajax, Webpack, NPM y más.

Iniciar curso
Imagen para el curso Docker y Microservicios

Docker y Microservicios

Aprende por qué es importante y cómo funciona Docker, con este nuevo curso práctico!

Iniciar curso

Artículos Relacionados 📚

Espera un momento 🎁 ...

¿Te gustaría aprender a programar, gratis?

Mago de Programación y más

Sólo debes registrarte 😉.