Hosting Equipo Avantys 8 min

SSL en VPS: Guía Completa de Let's Encrypt

Configura SSL gratis con Let's Encrypt en tu VPS. Certificados wildcard, renovación automática, configuración segura y mejores prácticas.

// Compartir

SSL en VPS: Guía Completa de Let's Encrypt
SSL en VPS con Let's Encrypt

HTTPS ya no es opcional. Google penaliza sitios sin SSL, los navegadores muestran advertencias y los usuarios no confían en páginas inseguras.

Let’s Encrypt revolucionó el SSL: certificados gratuitos, automáticos y reconocidos por todos los navegadores. No hay excusa para no tener HTTPS.

Esta guía te enseña a configurar SSL correctamente en tu VPS, desde lo básico hasta configuraciones avanzadas.

Por qué necesitas SSL

Sin SSL (HTTP)

Usuario ──────────────────────────── Servidor
         Datos en texto plano
         Cualquiera puede leer
         Contraseñas visibles

Con SSL (HTTPS)

Usuario ═══════════════════════════ Servidor
         Datos cifrados
         Imposible interceptar
         Contraseñas protegidas

Impacto real

AspectoSin SSLCon SSL
SEO GooglePenalizadoFavorecido
Navegadores”No seguro”Candado verde
Confianza usuarioBajaAlta
Datos sensiblesExpuestosProtegidos
HTTP/2No disponibleDisponible

Tipos de certificados SSL

Tipos de certificados SSL

Por validación

TipoValidaciónTiempoUso
DV (Domain)Solo dominioMinutosBlogs, webs personales
OV (Organization)Empresa verificadaDíasEmpresas, e-commerce
EV (Extended)Verificación exhaustivaSemanasBancos, grandes empresas

Let’s Encrypt ofrece certificados DV, suficientes para la mayoría de casos.

Por cobertura

TipoCubreEjemplo
SingleUn dominiotudominio.com
WildcardDominio + subdominios*.tudominio.com
Multi-domain (SAN)Varios dominiostudominio.com + otro.com

Let’s Encrypt: lo básico

Qué es

Let’s Encrypt es una autoridad certificadora gratuita, automatizada y abierta. Emite certificados DV reconocidos por todos los navegadores.

Limitaciones

  • Duración: 90 días (renovación automática)
  • Rate limits: 50 certificados por dominio/semana
  • Solo DV: No hay OV ni EV
  • Sin garantía: No hay seguro asociado

Para el 95% de sitios web, estas limitaciones no importan.

Certbot

Certbot es la herramienta oficial para obtener y renovar certificados de Let’s Encrypt.

Instalación de Certbot

Ubuntu/Debian

sudo apt update
sudo apt install certbot -y

Con plugin para Nginx

sudo apt install certbot python3-certbot-nginx -y

Con plugin para Apache

sudo apt install certbot python3-certbot-apache -y

Verificar instalación

certbot --version

Obtener certificado (método fácil)

Para Nginx

sudo certbot --nginx -d tudominio.com -d www.tudominio.com

Certbot automáticamente:

  1. Verifica que controlas el dominio
  2. Obtiene el certificado
  3. Configura Nginx para usarlo
  4. Configura redirección HTTP → HTTPS

Para Apache

sudo certbot --apache -d tudominio.com -d www.tudominio.com

Interactivo

Certbot te preguntará:

  • Email para notificaciones
  • Aceptar términos de servicio
  • Compartir email con EFF (opcional)
  • Redirigir HTTP a HTTPS (recomendado: sí)

Obtener certificado (método manual)

Si prefieres configurar el servidor manualmente:

sudo certbot certonly --webroot -w /var/www/html -d tudominio.com -d www.tudominio.com

O con standalone (para el puerto 80 temporalmente):

sudo systemctl stop nginx
sudo certbot certonly --standalone -d tudominio.com
sudo systemctl start nginx

Ubicación de certificados

/etc/letsencrypt/live/tudominio.com/
├── fullchain.pem   # Certificado + intermedios
├── privkey.pem     # Clave privada
├── cert.pem        # Solo tu certificado
└── chain.pem       # Certificados intermedios

Certificado Wildcard

Los wildcards cubren todos los subdominios: *.tudominio.com

Requisito: validación DNS

Wildcards requieren validación DNS (no HTTP). Necesitas añadir un registro TXT a tu DNS.

Obtener wildcard

sudo certbot certonly --manual --preferred-challenges dns -d tudominio.com -d *.tudominio.com

Certbot te pedirá crear un registro DNS:

_acme-challenge.tudominio.com TXT "valor_aleatorio"
  1. Añade el registro en tu panel DNS
  2. Espera propagación (1-5 minutos)
  3. Presiona Enter en Certbot

Automatizar wildcard con plugin DNS

Para renovación automática, usa plugins DNS:

Cloudflare:

sudo apt install python3-certbot-dns-cloudflare

# Crear archivo de credenciales
sudo nano /etc/letsencrypt/cloudflare.ini
dns_cloudflare_api_token = TU_API_TOKEN
sudo chmod 600 /etc/letsencrypt/cloudflare.ini

sudo certbot certonly --dns-cloudflare \
  --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
  -d tudominio.com -d *.tudominio.com

Plugins disponibles para: Cloudflare, Route53, DigitalOcean, Google Cloud, OVH, etc.

Configuración SSL segura

Configuración SSL segura

Nginx - Configuración moderna

server {
    listen 443 ssl http2;
    server_name tudominio.com www.tudominio.com;
    
    # Certificados
    ssl_certificate /etc/letsencrypt/live/tudominio.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/tudominio.com/privkey.pem;
    
    # Protocolos (solo TLS 1.2 y 1.3)
    ssl_protocols TLSv1.2 TLSv1.3;
    
    # Ciphers seguros
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;
    
    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;
    
    # Session cache
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;
    
    # Headers de seguridad
    add_header Strict-Transport-Security "max-age=63072000" always;
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    
    root /var/www/tudominio;
    index index.html index.php;
}

# Redirección HTTP → HTTPS
server {
    listen 80;
    server_name tudominio.com www.tudominio.com;
    return 301 https://$server_name$request_uri;
}

Apache - Configuración moderna

<VirtualHost *:443>
    ServerName tudominio.com
    ServerAlias www.tudominio.com
    DocumentRoot /var/www/tudominio
    
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/tudominio.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/tudominio.com/privkey.pem
    
    # Protocolos
    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    
    # Ciphers
    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
    SSLHonorCipherOrder off
    
    # OCSP Stapling
    SSLUseStapling On
    SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
    
    # Headers
    Header always set Strict-Transport-Security "max-age=63072000"
</VirtualHost>

<VirtualHost *:80>
    ServerName tudominio.com
    Redirect permanent / https://tudominio.com/
</VirtualHost>

Renovación automática

Verificar renovación

sudo certbot renew --dry-run

Cron automático

Certbot instala un cron/timer automático. Verificar:

# Timer de systemd
sudo systemctl status certbot.timer

# O cron
cat /etc/cron.d/certbot

Renovación manual

sudo certbot renew

Hooks post-renovación

Para reiniciar servicios después de renovar:

sudo nano /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh
#!/bin/bash
systemctl reload nginx
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh

Verificar configuración SSL

SSL Labs

ssllabs.com/ssltest - Análisis completo gratuito.

Objetivo: Calificación A o A+

Desde terminal

# Ver certificado
openssl s_client -connect tudominio.com:443 -servername tudominio.com

# Ver fechas
echo | openssl s_client -connect tudominio.com:443 2>/dev/null | openssl x509 -noout -dates

# Ver detalles
curl -vI https://tudominio.com 2>&1 | grep -A6 "Server certificate"

Múltiples dominios en un VPS

Opción 1: Certificado por dominio

sudo certbot --nginx -d dominio1.com -d www.dominio1.com
sudo certbot --nginx -d dominio2.com -d www.dominio2.com

Opción 2: Certificado multi-dominio (SAN)

sudo certbot --nginx -d dominio1.com -d www.dominio1.com -d dominio2.com -d www.dominio2.com

Máximo 100 dominios por certificado.

Opción 3: Wildcard + dominios

sudo certbot --nginx -d tudominio.com -d *.tudominio.com

HSTS: HTTP Strict Transport Security

HSTS fuerza HTTPS en el navegador. Una vez activado, el navegador solo usa HTTPS.

Activar HSTS

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

Parámetros:

  • max-age: Tiempo en segundos (2 años recomendado)
  • includeSubDomains: Aplica a subdominios
  • preload: Permite añadirse a lista preload de navegadores

Cuidado con HSTS

Una vez activado con max-age largo, no puedes volver a HTTP fácilmente. Empieza con valores bajos:

# Primero prueba con 5 minutos
add_header Strict-Transport-Security "max-age=300" always;

# Si todo funciona, aumenta gradualmente
add_header Strict-Transport-Security "max-age=86400" always;  # 1 día
add_header Strict-Transport-Security "max-age=63072000" always;  # 2 años

Problemas comunes

Error: “too many certificates”

Has superado el rate limit. Espera una semana o usa staging:

sudo certbot --staging -d tudominio.com

Error: “connection refused”

Puerto 80 no accesible. Verifica:

  • Firewall permite puerto 80
  • Nginx/Apache corriendo
  • DNS apunta a tu IP

Error: “unauthorized”

El archivo de verificación no es accesible. Verifica:

  • DocumentRoot correcto
  • Permisos de archivos
  • No hay redirecciones que interfieran

Mixed content

Tu sitio carga recursos HTTP en página HTTPS.

<!-- ❌ Mal -->
<img src="http://tudominio.com/imagen.jpg">

<!-- ✅ Bien -->
<img src="https://tudominio.com/imagen.jpg">
<!-- O mejor -->
<img src="/imagen.jpg">

Certificado expirado

# Verificar fecha
sudo certbot certificates

# Renovar manualmente
sudo certbot renew --force-renewal

SSL con Cloudflare

Si usas Cloudflare como CDN:

Modo Full (Strict)

Requiere certificado válido en tu VPS (Let’s Encrypt).

Visitante ←HTTPS→ Cloudflare ←HTTPS→ VPS (con cert válido)

Recomendado: Máxima seguridad.

Modo Full

Acepta certificado self-signed en el origen.

Modo Flexible

Solo HTTPS entre visitante y Cloudflare. No recomendado.

Certificado origen Cloudflare

Cloudflare puede generar un certificado para tu origen (15 años):

  1. Dashboard → SSL/TLS → Origin Server
  2. Create Certificate
  3. Instalar en tu VPS

Solo válido con Cloudflare como proxy.

Automatización completa

Script de setup SSL

#!/bin/bash
# /root/scripts/setup-ssl.sh

DOMAIN=$1
EMAIL="[email protected]"

if [ -z "$DOMAIN" ]; then
    echo "Uso: $0 dominio.com"
    exit 1
fi

# Obtener certificado
certbot --nginx -d $DOMAIN -d www.$DOMAIN --non-interactive --agree-tos --email $EMAIL

# Verificar
certbot certificates | grep $DOMAIN

echo "SSL configurado para $DOMAIN"
chmod +x /root/scripts/setup-ssl.sh
./setup-ssl.sh nuevodominio.com

Checklist SSL

Básico

TareaVerificación
Certbot instaladocertbot --version
Certificado activocertbot certificates
HTTPS funcionaVisitar sitio
Redirección HTTP→HTTPScurl -I http://tudominio.com

Seguridad

TareaVerificación
TLS 1.2+ solamenteSSL Labs test
HSTS activoHeaders en respuesta
Calificación A/A+SSL Labs
Renovación automáticacertbot renew --dry-run

Preguntas frecuentes

¿Let’s Encrypt es seguro para e-commerce?

Sí, técnicamente es igual de seguro que certificados de pago. La diferencia es solo el tipo de validación (DV vs OV/EV).

¿Por qué solo 90 días?

Por seguridad. Certificados cortos limitan el daño si se comprometen. La renovación automática lo hace transparente.

¿Puedo usar Let’s Encrypt en producción?

Absolutamente. Millones de sitios lo usan, incluyendo grandes empresas.

¿Qué pasa si caduca el certificado?

Los navegadores muestran error de seguridad. Por eso es crucial la renovación automática.

Nuestra recomendación

Para cualquier VPS:

  1. Instala Certbot con plugin de tu servidor web
  2. Obtén certificado con un comando
  3. Verifica renovación automática
  4. Configura HSTS después de probar

¿Quieres SSL sin complicaciones? Los VPS de Avantys con administración gestionada incluyen configuración SSL profesional.


Conclusión

SSL con Let’s Encrypt es gratis, automático y no hay excusa para no tenerlo. Un comando y tu sitio está protegido.

No dejes tu VPS sin HTTPS. Configúralo hoy, tarda 5 minutos y la diferencia en seguridad, SEO y confianza es enorme.

¿Quieres un VPS con SSL preconfigurado? Explora los VPS de Avantys con certificados incluidos.


Guías relacionadas


¿Quieres la guía completa con todos los casos de uso?

→ Volver a la guía maestra: Mejor VPS en España 2026

¿Quieres que lo hagamos por ti?

En Avantys gestionamos tu web, hosting y crecimiento digital de punta a punta. Tú a lo importante.

Hablar con Avantys
// Boletín

Suscríbete al boletín

Guías nuevas, sin spam. Cancela cuando quieras.