Para instalar SSL en un servidor VPS de forma gratuita, la solución más usada es Let's Encrypt junto con la herramienta Certbot: en menos de 10 minutos obtienes un certificado válido, reconocido por todos los navegadores, que se renueva automáticamente cada 90 días.
¿Qué es Let's Encrypt y por qué usarlo?
Let's Encrypt es una autoridad de certificación (CA) sin fines de lucro que emite certificados SSL/TLS gratuitos de forma automatizada. Es el estándar de facto para asegurar sitios web sin costo, y está respaldado por Mozilla, Google, Cisco y la Electronic Frontier Foundation.
Las ventajas principales frente a un certificado de pago para un VPS personal o de agencia son:
- Gratuito: sin costo alguno, válido en todos los navegadores modernos.
- Automatizable: Certbot puede renovarlo sin intervención manual.
- Wildcard disponible: puedes cubrir
*.tudominio.comcon un solo certificado. - Ampliamente soportado: funciona con Nginx, Apache, HAProxy y más.
Para sitios de ecommerce con procesamiento de pagos o validación extendida (EV), considera un certificado de pago. Para la mayoría de los VPS con aplicaciones web, Let's Encrypt es más que suficiente.
Requisitos antes de empezar
Antes de ejecutar cualquier comando, verifica que cumples con estos requisitos:
- Tu dominio apunta a la IP de tu VPS (DNS propagado). Compruébalo con
dig tudominio.com. - El puerto 80 (HTTP) está abierto en el firewall — Let's Encrypt lo necesita para el desafío de validación.
- Tienes acceso root o sudo al servidor.
- Tienes instalado Nginx o Apache y está corriendo correctamente.
Instalar Certbot en el VPS
Certbot es el cliente oficial de Let's Encrypt. Los comandos de instalación varían según la distribución de Linux.
En Ubuntu / Debian
sudo apt update
sudo apt install -y certbot python3-certbot-nginx
# o para Apache:
sudo apt install -y certbot python3-certbot-apache
En AlmaLinux / Rocky Linux / CentOS Stream
sudo dnf install -y epel-release
sudo dnf install -y certbot python3-certbot-nginx
# o para Apache:
sudo dnf install -y certbot python3-certbot-apache
Una vez instalado, verifica la versión:
certbot --version
Obtener e instalar el certificado SSL
Con Certbot instalado, el proceso de obtención e instalación del certificado es un solo comando. Certbot modificará automáticamente la configuración de tu servidor web para habilitar HTTPS.
Con Nginx
sudo certbot --nginx -d tudominio.com -d www.tudominio.com
Con Apache
sudo certbot --apache -d tudominio.com -d www.tudominio.com
Certbot te hará dos preguntas:
- Tu dirección de correo electrónico (para alertas de expiración).
- Si deseas redirigir HTTP a HTTPS automáticamente — elige Sí (opción 2).
Al finalizar, verás un mensaje de éxito con la ruta donde se guardaron los certificados, típicamente en /etc/letsencrypt/live/tudominio.com/.
Certificado wildcard (dominio con subdominio *)
Para cubrir todos los subdominios, necesitas el método de validación DNS:
sudo certbot certonly --manual --preferred-challenges dns \
-d "*.tudominio.com" -d tudominio.com
Certbot te pedirá que agregues un registro TXT en tu DNS para validar la propiedad del dominio.
Configurar la renovación automática
Los certificados de Let's Encrypt expiran a los 90 días. Certbot instala automáticamente un timer de systemd (o un cron job) que intenta renovar los certificados antes de que expiren.
Verifica que el timer esté activo:
sudo systemctl status certbot.timer
Prueba la renovación sin realmente ejecutarla:
sudo certbot renew --dry-run
Si el dry-run termina sin errores, la renovación automática está correctamente configurada. El timer ejecuta la renovación dos veces al día; si el certificado tiene más de 30 días de vigencia restante, no hace nada.
Recargar Nginx o Apache tras la renovación
Añade un hook de post-renovación para que el servidor web recargue la configuración cuando se renueve el certificado:
# Para Nginx
echo "#!/bin/bash
systemctl reload nginx" | sudo tee /etc/letsencrypt/renewal-hooks/post/reload-nginx.sh
sudo chmod +x /etc/letsencrypt/renewal-hooks/post/reload-nginx.sh
# Para Apache
echo "#!/bin/bash
systemctl reload apache2" | sudo tee /etc/letsencrypt/renewal-hooks/post/reload-apache.sh
sudo chmod +x /etc/letsencrypt/renewal-hooks/post/reload-apache.sh
Verificar que SSL funciona correctamente
Una vez instalado el certificado, verifica que todo funciona:
- Abre
https://tudominio.comen el navegador — debes ver el candado verde. - Usa SSL Labs para obtener una calificación detallada de tu configuración SSL.
- Verifica la redirección HTTP→HTTPS visitando
http://tudominio.com.
| Verificación | Herramienta | Resultado esperado |
|---|---|---|
| Certificado válido | Navegador web | Candado verde, sin advertencias |
| Calificación SSL | SSL Labs | A o A+ |
| Redirección HTTP | curl -I http://tudominio.com | 301 → https:// |
| Renovación automática | certbot renew --dry-run | Sin errores |
Si necesitas ayuda para configurar tu VPS correctamente desde cero, en elenlace.com ofrecemos servicios de administración y configuración de servidores VPS.
Para más guías sobre gestión de servidores, visita nuestro centro de recursos sobre VPS.
Conclusiones clave
- Let's Encrypt + Certbot instalan un certificado SSL gratuito y reconocido en menos de 10 minutos.
- El requisito esencial es que el DNS del dominio apunte a la IP del VPS antes de ejecutar Certbot.
- Con
--nginxo--apache, Certbot modifica la configuración del servidor web automáticamente. - La renovación automática se configura sola; verifica con
certbot renew --dry-run. - Agrega un hook post-renovación para que Nginx o Apache recargue la configuración al renovar.
¿Quieres que alguien gestione tu VPS por ti? El equipo de elenlace.com puede encargarse de la instalación SSL, la configuración del servidor y el mantenimiento mensual.
Preguntas frecuentes
¿Let's Encrypt funciona con cualquier VPS?
Sí, siempre que tengas acceso root al servidor y el dominio apunte a la IP del VPS. Funciona con Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS Stream y prácticamente cualquier distribución Linux que soporte Certbot.
¿Cuánto tiempo dura el certificado de Let's Encrypt?
90 días. Sin embargo, Certbot configura la renovación automática, que intentará renovar el certificado cuando le queden menos de 30 días de vigencia. Si está correctamente configurado, nunca verás el certificado expirado.
¿Puedo usar Let's Encrypt con múltiples dominios en el mismo VPS?
Sí. Puedes tener certificados separados para cada dominio o bien un certificado SAN (Subject Alternative Names) que cubra varios dominios con un solo certificado. Certbot gestiona ambos casos sin problema.
¿Qué pasa si el puerto 80 está bloqueado en mi VPS?
El método estándar HTTP-01 de validación requiere el puerto 80. Si está bloqueado, usa el método DNS-01 con la bandera --preferred-challenges dns, que valida la propiedad del dominio mediante un registro TXT en tu DNS, sin necesidad del puerto 80.
Compara proveedores
Otros proveedores y guías que vale la pena comparar: