Servidores y VPS

Instalar SSL gratis en tu VPS con Let's Encrypt paso a paso

Aprende a instalar un certificado SSL gratuito en tu servidor VPS usando Let's Encrypt y Certbot, con renovación automática incluida y sin costos adicionales.

Detailed image of illuminated server racks showcasing modern technology infrastructure.

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.com con 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:

  1. Tu dirección de correo electrónico (para alertas de expiración).
  2. 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.com en 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 --nginx o --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:

← Todos