📘 Este artículo forma parte de nuestra Guía Completa de Servidores y Virtualización y complementa a nuestra Guía Completa de Redes. Si administras servidores Nginx, esas guías son tu punto de partida.
Introducción
HTTPS ya no es opcional. En 2026, los navegadores marcan como «no seguro» cualquier web sin SSL, Google penaliza el SEO de las webs sin HTTPS y los usuarios desconfían de cualquier sitio que no tenga el candado.
Nginx es el servidor web más usado del mundo, y configurar SSL/TLS correctamente es fundamental para:
- Seguridad: cifrado del tráfico.
- SEO: Google prioriza HTTPS.
- Confianza: los usuarios ven el candado.
- Cumplimiento: RGPD, PCI-DSS, NIS2.
En esta guía completa vas a aprender:
- Qué es SSL/TLS (conceptos básicos).
- Obtener certificados gratuitos con Let’s Encrypt.
- Configurar SSL en Nginx paso a paso.
- Endurecer la configuración (TLS 1.3, HSTS, OCSP Stapling).
- Redirigir HTTP a HTTPS.
- Renovar certificados automáticamente.
- Configurar certificados wildcard.
- Comprobar la seguridad con SSL Labs.
- Solución de problemas comunes.
- FAQ con las preguntas frecuentes.
Si es tu primera vez con Nginx, consulta nuestra Guía de instalación de Nginx. Si usas Apache, consulta nuestra Guía de Apache2.
Índice de contenidos
- ¿Qué es SSL/TLS?
- Requisitos previos
- Instalación de Certbot
- Obtener certificado Let’s Encrypt
- Configuración básica de SSL en Nginx
- Configuración avanzada (TLS 1.3, HSTS)
- Redirigir HTTP a HTTPS
- Renovación automática
- Certificados wildcard
- SSL para múltiples dominios
- Comprobar la seguridad (SSL Labs)
- Optimización y rendimiento
- Solución de problemas
- FAQ
- Conclusión
1. ¿Qué es SSL/TLS?
SSL (Secure Sockets Layer) y su sucesor TLS (Transport Layer Security) son protocolos criptográficos que cifran las comunicaciones entre un cliente (navegador) y un servidor (tu web).

1.1 Diferencias entre SSL y TLS
Aunque popularmente se dice «SSL», técnicamente:
- SSL: versiones 1.0, 2.0, 3.0 (obsoletas y vulnerables).
- TLS: versiones 1.0, 1.1 (obsoletas), 1.2, 1.3 (actuales).
En 2026, solo TLS 1.2 y 1.3 deben estar habilitados.
1.2 Cómo funciona HTTPS
- Cliente solicita conexión HTTPS al servidor.
- Servidor presenta su certificado.
- Cliente verifica el certificado contra una CA (Certificate Authority) de confianza.
- Handshake TLS: ambas partes negocian algoritmos y claves.
- Conexión cifrada establecida.
1.3 Componentes de un certificado
- Clave pública: parte del par de claves.
- Clave privada: nunca se comparte.
- CA: entidad que firma el certificado.
- SAN (Subject Alternative Name): dominios cubiertos.
- Fecha de expiración: normalmente 90 días (Let’s Encrypt).
- Cadena de confianza: CA raíz → CA intermedia → certificado.
1.4 Tipos de certificados
| Tipo | Descripción | Coste |
|---|---|---|
| DV (Domain Validation) | Solo verifica el dominio | Gratis (Let’s Encrypt) |
| OV (Organization Validation) | Verifica la organización | ~100 €/año |
| EV (Extended Validation) | Verificación exhaustiva | ~300 €/año |
| Wildcard | Cubre subdominios | Gratis (Let’s Encrypt) |
| Multi-domain (SAN) | Varios dominios | Gratis (Let’s Encrypt) |
Recomendación 2026: Let’s Encrypt para todo. Gratis, renovación automática, aceptado universalmente.
Consulta Cómo implementar el protocolo HTTPS correctamente.
2. Requisitos previos
2.1 Servidor
- Debian 12 o Ubuntu 24.04 (recomendados).
- Nginx instalado y funcionando.
- Dominio apuntando al servidor (registro DNS A/AAAA).
- Puerto 80 abierto (para la validación de Let’s Encrypt).
- Acceso root o sudo.
2.2 Conocimientos
- Linux básico (terminal, edición de archivos).
- Nginx básico (vhosts, configuraciones).
Si no tienes Nginx instalado:
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginxConsulta Guía de instalación de Nginx.
2.3 DNS configurado
Verifica que tu dominio apunta al servidor:
dig +short tudominio.comDebería devolver la IP de tu servidor.
Si no funciona:
- Configura el registro A (IPv4) o AAAA (IPv6).
- Espera a la propagación (5 min – 48 h).
Consulta Guía Completa de Redes.
3. Instalación de Certbot
Certbot es el cliente oficial de Let’s Encrypt.
3.1 Instalación en Debian/Ubuntu
sudo apt update
sudo apt install -y certbot python3-certbot-nginxVerificar:
certbot --version3.2 Instalación en RHEL/Rocky/AlmaLinux
sudo dnf install -y certbot python3-certbot-nginx3.3 Alternativa: acme.sh
Alternativa moderna:
curl https://get.acme.sh | shVentajas:
- Escrito en shell (sin dependencias).
- Soporta más proveedores DNS.
Consulta Guía Completa de Servidores.
4. Obtener certificado Let’s Encrypt
4.1 Método 1: Certbot con plugin Nginx (recomendado)
Automático: Certbot modifica la configuración de Nginx.
sudo certbot --nginx -d tudominio.com -d www.tudominio.comCertbot:
- Verifica que controlas el dominio (HTTP-01 challenge).
- Genera el certificado.
- Modifica la configuración de Nginx.
- Configura la renovación automática.
Te pedirá:
- Email para notificaciones (renovación, avisos).
- Aceptar términos de servicio.
- Redirigir HTTP a HTTPS (recomendado: sí).
Resultado:
Congratulations! You have successfully enabled HTTPS on
https://tudominio.com and https://www.tudominio.com4.2 Método 2: Certbot standalone
Si Nginx no está corriendo o quieres más control:
sudo systemctl stop nginx
sudo certbot certonly --standalone -d tudominio.com -d www.tudominio.com
sudo systemctl start nginxRequiere puerto 80 libre.
4.3 Método 3: Certbot webroot
Si tienes otros servicios en el puerto 80:
sudo certbot certonly --webroot -w /var/www/html -d tudominio.comRequiere que el dominio sirva contenido desde /var/www/html.
4.4 Verificar el certificado
sudo certbot certificatesSalida:
Found the following certs:
Certificate Name: tudominio.com
Domains: tudominio.com www.tudominio.com
Expiry Date: 2027-01-15 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/tudominio.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/tudominio.com/privkey.pemArchivos generados:
/etc/letsencrypt/live/tudominio.com/fullchain.pem— certificado + cadena./etc/letsencrypt/live/tudominio.com/privkey.pem— clave privada./etc/letsencrypt/live/tudominio.com/cert.pem— solo certificado./etc/letsencrypt/live/tudominio.com/chain.pem— cadena intermedia.
⚠️ Importante: los archivos en live/ son symlinks a archive/. Nunca edites archivos en live/.
5. Configuración básica de SSL en Nginx

5.1 Ejemplo de configuración
Crea o edita /etc/nginx/sites-available/tudominio.com:
server {
listen 443 ssl http2;
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 y cifrados
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# Sesiones SSL
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/tudominio.com/chain.pem;
resolver 1.1.1.1 8.8.8.8 valid=300s;
resolver_timeout 5s;
# Cabeceras de seguridad
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
# Root y logs
root /var/www/tudominio.com;
index index.html index.php;
access_log /var/log/nginx/tudominio.access.log;
error_log /var/log/nginx/tudominio.error.log;
# Location principal
location / {
try_files $uri $uri/ =404;
}
}5.2 Activar y verificar
sudo ln -s /etc/nginx/sites-available/tudominio.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx5.3 Verificar HTTPS
En el navegador:
https://tudominio.comDeberías ver el candado y https:// en la barra de direcciones.
Por línea de comandos:
curl -I https://tudominio.comDeberías ver:
HTTP/2 200
server: nginx
...Consulta Cómo implementar el protocolo HTTPS correctamente.
6. Configuración avanzada (TLS 1.3, HSTS)
6.1 Habilitar solo TLS 1.2 y 1.3
ssl_protocols TLSv1.2 TLSv1.3;Deshabilitar:
- TLS 1.0 y 1.1 (obsoletos, vulnerables).
- SSL 2.0 y 3.0 (nunca).
6.2 Cifrados recomendados
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;ssl_prefer_server_ciphers off: deja al cliente elegir (más seguro con TLS 1.3).
6.3 Habilitar HSTS
HSTS (HTTP Strict Transport Security) obliga al navegador a usar HTTPS durante un tiempo.
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;Parámetros:
max-age=31536000: 1 año.includeSubDomains: aplica a subdominios.preload: solicita inclusión en la lista de preload de Chrome.
⚠️ Cuidado: una vez activado con preload, es difícil revertir. Empieza con max-age bajo.
6.4 OCSP Stapling
Reduce el tiempo de handshake:
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/tudominio.com/chain.pem;
resolver 1.1.1.1 8.8.8.8 valid=300s;
resolver_timeout 5s;6.5 Sesiones SSL
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;Ventajas:
- Cache: 10 MB (≈40.000 sesiones).
- Timeout: 1 día.
- Deshabilitar tickets: evita problemas de forward secrecy.
6.6 DH parameters (opcional)
Para máxima seguridad:
sudo openssl dhparam -out /etc/nginx/dhparam.pem 2048En Nginx:
ssl_dhparam /etc/nginx/dhparam.pem;⚠️ Tarda varios minutos en generar. No es obligatorio en 2026.
6.7 Configuración completa recomendada
# SSL
ssl_certificate /etc/letsencrypt/live/tudominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tudominio.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/tudominio.com/chain.pem;
resolver 1.1.1.1 8.8.8.8 valid=300s;
resolver_timeout 5s;Consulta Hardening de servidores web Apache vs Nginx.
7. Redirigir HTTP a HTTPS
Nunca permitas HTTP sin redirigir.
7.1 Configuración de redirección
server {
listen 80;
listen [::]:80;
server_name tudominio.com www.tudominio.com;
# Redirigir todo a HTTPS
return 301 https://$server_name$request_uri;
}Con Certbot, esta redirección se añade automáticamente.
7.2 Verificar
curl -I http://tudominio.comDeberías ver:
HTTP/1.1 301 Moved Permanently
Location: https://tudominio.com/7.3 Redirección de www a no-www (o viceversa)
Si quieres un dominio canónico:
De www a no-www:
server {
listen 443 ssl http2;
server_name www.tudominio.com;
return 301 https://tudominio.com$request_uri;
}De no-www a www:
server {
listen 443 ssl http2;
server_name tudominio.com;
return 301 https://www.tudominio.com$request_uri;
}Consulta Guía Completa de Redes.
8. Renovación automática
Los certificados de Let’s Encrypt duran 90 días. Hay que renovarlos.
8.1 Verificar la renovación automática
Certbot instala un timer systemd:
systemctl list-timers | grep certbotDeberías ver:
certbot.timer ... Next: ...8.2 Probar la renovación (dry-run)
sudo certbot renew --dry-runSalida:
Congratulations, all simulated renewals succeeded:
/etc/letsencrypt/live/tudominio.com/fullchain.pem (success)8.3 Renovación manual
sudo certbot renewSolo renueva si quedan <30 días.
8.4 Forzar renovación
sudo certbot renew --force-renewal⚠️ No abusar: Let’s Encrypt tiene rate limits.
8.5 Hook post-renovación
Recarga Nginx tras renovar:
sudo mkdir -p /etc/letsencrypt/renewal-hooks/deploy
sudo nano /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.shContenido:
#!/bin/bash
systemctl reload nginxsudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh8.6 Verificar los logs
sudo tail -f /var/log/letsencrypt/letsencrypt.logConsulta Cómo automatizar tareas con cron.
9. Certificados wildcard
Un certificado wildcard cubre *.tudominio.com (todos los subdominios).
9.1 Requisitos
- Validación DNS-01: necesitas acceso a la API de tu proveedor DNS.
- Plugins específicos: Cloudflare, Route53, etc.
9.2 Instalación del plugin DNS
Para Cloudflare:
sudo apt install -y python3-certbot-dns-cloudflare9.3 Configurar credenciales
Crea /etc/letsencrypt/cloudflare.ini:
dns_cloudflare_api_token = TU_API_TOKENsudo chmod 600 /etc/letsencrypt/cloudflare.ini9.4 Obtener certificado wildcard
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
-d "tudominio.com" \
-d "*.tudominio.com"Ventajas:
- Cubre todos los subdominios.
- Un solo certificado para todo.
Inconvenientes:
- Requiere API del DNS.
- Renovación automática depende del plugin.
Consulta Cómo funciona un CDN (Cloudflare).
10. SSL para múltiples dominios
10.1 Un certificado para varios dominios
sudo certbot --nginx \
-d tudominio.com \
-d www.tudominio.com \
-d otrod minio.com \
-d www.otrodominio.comVentajas:
- Un solo certificado.
- Gestión simplificada.
10.2 Certificados separados
Por vhost:
server {
listen 443 ssl http2;
server_name tudominio.com;
ssl_certificate /etc/letsencrypt/live/tudominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tudominio.com/privkey.pem;
...
}
server {
listen 443 ssl http2;
server_name otrodominio.com;
ssl_certificate /etc/letsencrypt/live/otrodominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/otrodominio.com/privkey.pem;
...
}10.3 Múltiples dominios en un vhost
Con server_name:
server {
listen 443 ssl http2;
server_name tudominio.com www.tudominio.com otrodominio.com;
ssl_certificate /etc/letsencrypt/live/tudominio.com/fullchain.pem;
...
}11. Comprobar la seguridad (SSL Labs)
SSL Labs es la herramienta de referencia para evaluar la seguridad SSL.
11.1 Analizar tu dominio
- Visita https://www.ssllabs.com/ssltest/
- Introduce tu dominio.
- Espera el análisis (~2 min).
11.2 Interpretar el resultado
Objetivo: A+.
| Nota | Significado |
|---|---|
| A+ | Excelente (HSTS + TLS 1.3) |
| A | Muy bueno |
| B | Aceptable (TLS 1.2 sin HSTS) |
| C | Problemático |
| F | Inseguro |
11.3 Mejorar la nota
Si tienes menos de A+:
- Habilitar HSTS (con preload).
- Habilitar TLS 1.3.
- Deshabilitar TLS 1.0/1.1.
- Habilitar OCSP Stapling.
- Deshabilitar cifrados débiles.
- Reiniciar Nginx.
Comprobar de nuevo.
11.4 Otras herramientas
- SSL Labs: https://www.ssllabs.com/ssltest/
- Mozilla Observatory: https://observatory.mozilla.org/
- ImmuniWeb: https://www.immuniweb.com/ssl/
- Hardenize: https://www.hardenize.com/
Consulta Hardening de servidores web Apache vs Nginx.
12. Optimización y rendimiento
12.1 HTTP/2
listen 443 ssl http2;Ventajas:
- Multiplexación.
- Compresión de cabeceras.
- Server push.
12.2 HTTP/3 (QUIC)
Requiere Nginx 1.25+:
listen 443 quic reuseport;
listen 443 ssl http2;
add_header Alt-Svc 'h3=":443"; ma=86400';Ventajas:
- Menor latencia.
- Mejor en redes móviles.
12.3 Compresión
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;12.4 Caché
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|webp|woff2)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}12.5 Tamaño máximo
client_max_body_size 100M;Consulta Optimización de servidores Linux.
13. Solución de problemas
13.1 «NET::ERR_CERT_AUTHORITY_INVALID»
Causas:
- Certificado caducado.
- Certificado autofirmado.
- Falta la cadena intermedia.
Solución:
sudo certbot certificates
sudo systemctl reload nginxVerificar la cadena:
openssl s_client -connect tudominio.com:443 -showcerts13.2 «ERR_SSL_PROTOCOL_ERROR»
Causas:
- Configuración SSL incorrecta.
- Certificado mal referenciado.
Solución:
sudo nginx -t
sudo tail -f /var/log/nginx/error.log13.3 «This site can’t provide a secure connection»
Causas:
- Puerto 443 cerrado.
- Firewall bloquea.
Solución:
sudo ufw status
sudo ss -tulpn | grep :443Consulta Guía para configurar firewall en Debian.
13.4 «Certificate has expired»
Solución:
sudo certbot renew --force-renewal
sudo systemctl reload nginxVerificar:
echo | openssl s_client -connect tudominio.com:443 2>/dev/null | openssl x509 -noout -dates13.5 «Mixed content» (contenido mixto)
Causa: recursos cargados por HTTP en página HTTPS.
Solución:
Busca en tu HTML:
grep -rn "http://" /var/www/tudominio.com/ | grep -v "https://"Corrige:
- Imágenes: cambia
http://ahttps://. - CSS/JS: igual.
- O usa rutas relativas (
/ruta/en lugar dehttp://...).
13.6 Redirección infinita
Causa: redirección HTTPS + redirección en la app.
Solución:
- Deshabilita la redirección en la app.
- O usa
X-Forwarded-Proto.
proxy_set_header X-Forwarded-Proto $scheme;13.7 Certbot falla
Diagnóstico:
sudo tail -f /var/log/letsencrypt/letsencrypt.log
sudo certbot certificatesCausas:
- DNS no propagado.
- Puerto 80 cerrado.
- Rate limit alcanzado.
13.8 Comprobar fecha de expiración
Por línea de comandos:
echo | openssl s_client -servername tudominio.com -connect tudominio.com:443 2>/dev/null | openssl x509 -noout -datesSalida:
notBefore=Oct 1 12:00:00 2026 GMT
notAfter=Dec 30 12:00:00 2026 GMTConsulta Análisis de registros en Linux.
14. FAQ
¿Qué es SSL y por qué es importante?
SSL/TLS son protocolos criptográficos que cifran las comunicaciones web.
Importancia:
- Seguridad: cifra datos.
- SEO: Google prioriza HTTPS.
- Confianza: los usuarios ven el candado.
- Cumplimiento: RGPD, PCI-DSS.
¿SSL y TLS son lo mismo?
Técnicamente, no. SSL es el predecesor (obsoleto). TLS es el actual.
En el lenguaje común, se dice «SSL» para referirse a ambos.
¿Cuánto cuesta un certificado SSL?
Con Let’s Encrypt: gratis.
Con CA comercial:
- DV: ~50 €/año.
- OV: ~150 €/año.
- EV: ~300 €/año.
Recomendación: Let’s Encrypt para todo.
¿Cada cuánto se renueva el certificado?
Let’s Encrypt: cada 90 días (automático con Certbot).
Comercial: 1 año normalmente.
¿Cómo redirijo HTTP a HTTPS?
server {
listen 80;
server_name tudominio.com;
return 301 https://$server_name$request_uri;
}Con Certbot, se añade automáticamente.
¿Qué es HSTS y debería activarlo?
HSTS fuerza al navegador a usar HTTPS siempre.
Recomendación: activar, pero empezar con max-age bajo (300) y subir gradualmente.
⚠️ preload es irreversible. Úsalo solo cuando estés seguro.
¿Cómo obtengo un certificado wildcard?
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
-d "tudominio.com" \
-d "*.tudominio.com"Requiere plugin DNS de tu proveedor.
¿Por qué mi web dice «no segura»?
Causas:
- Certificado caducado.
- Certificado autofirmado.
- Mixed content.
- Cadena de certificados incompleta.
Solución: revisa los logs y usa SSL Labs.
¿Cómo compruebo mi nota SSL?
SSL Labs: https://www.ssllabs.com/ssltest/
Objetivo: A+.
¿Funciona en Cloudflare?
Sí. Con modo SSL «Full (Strict)».
En Cloudflare:
- SSL/TLS → Overview → Full (Strict).
- Edge Certificates → Always Use HTTPS: On.
¿Cómo funciona con un reverse proxy?
Nginx como proxy:
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}¿Qué es OCSP Stapling?
Técnica que acelera el handshake TLS al incluir la respuesta OCSP en el handshake.
Recomendación: activar.
¿Qué protocolos debo habilitar?
TLS 1.2 y TLS 1.3.
Deshabilitar: TLS 1.0, TLS 1.1, SSL 2.0, SSL 3.0.
¿Qué cifrados debo usar?
Los modernos con ECDHE y AEAD:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...Nunca uses RC4, DES, 3DES, MD5.
¿Cuánto tarda Let’s Encrypt en emitir un certificado?
Menos de 1 minuto (con validación HTTP-01).
Con DNS-01: puede tardar unos minutos (propagación DNS).
¿Qué pasa si no renuevo a tiempo?
Los navegadores mostrarán advertencias de seguridad.
Con Certbot, la renovación es automática y avisa por email si falla.
¿Cómo migro mi certificado a otro servidor?
Copia los archivos:
sudo tar -czf certs.tar.gz /etc/letsencrypt/
# Transferir
sudo tar -xzf certs.tar.gz -C /O usa Certbot en el nuevo servidor.
¿Puedo tener SSL sin dominio?
No con Let’s Encrypt. Necesitas un dominio válido.
Alternativa: certificado autofirmado (solo para pruebas).
15. Conclusión
Configurar SSL en Nginx es imprescindible en 2026. Con Let’s Encrypt y Certbot, el proceso es gratis, sencillo y automático.
Puntos clave:
- Instala Certbot (
apt install certbot python3-certbot-nginx). - Obtén el certificado con
certbot --nginx -d tudominio.com. - Configura Nginx con TLS 1.2/1.3, HSTS, OCSP Stapling.
- Redirige HTTP a HTTPS siempre.
- Renovación automática con el timer de systemd.
- Wildcard con plugin DNS.
- Múltiples dominios en un certificado o separados.
- Comprueba en SSL Labs (objetivo: A+).
- Optimiza con HTTP/2, HTTP/3, compresión, caché.
- Soluciona problemas con los logs y SSL Labs.
Si quieres seguir aprendiendo:






