Todos los artículos de SSL SSL y certificados

Mejores prácticas SSL/TLS para 2026

La configuración SSL/TLS ha cambiado significativamente. Este es el estado actual de las mejores prácticas a partir de 2026 — qué habilitar, qué desactivar y qué viene.

Versiones de protocolo

ProtocoloEstadoAcción
SSL 2.0, 3.0RotoDesactivar — vulnerabilidades críticas (POODLE, DROWN)
TLS 1.0Obsoleto (2021)Desactivar — vulnerabilidad BEAST
TLS 1.1Obsoleto (2021)Desactivar — sin soporte de cifrado moderno
TLS 1.2SeguroHabilitar — solo con cifrados AEAD
TLS 1.3Estándar actualHabilitar — el más rápido y seguro

Nginx: ssl_protocols TLSv1.2 TLSv1.3; Apache: SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

Suites de cifrado

TLS 1.3 (sin configuración necesaria)

Las 5 suites de cifrado son seguras. No intentes personalizarlas — no puedes mejorarlas.

TLS 1.2 (restringir a solo AEAD)

# Nginx
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers off;

Reglas:

  • Solo suites ECDHE-* — asegura secreto perfecto hacia adelante
  • Solo *-GCM-* o *-CHACHA20-* — solo cifrados AEAD
  • Sin cifrados CBC — vulnerables a BEAST, Lucky13
  • ssl_prefer_server_ciphers off — dejar que el cliente elija (los clientes modernos eligen la mejor opción)

Gestión de certificados

PrácticaPor qué
Usar claves ECDSA P-256Más pequeñas, más rápidas que RSA 2048
Automatizar la renovaciónLa validez de 47 días para 2029 hace la renovación manual impracticable
Servir fullchain.pemPreviene errores de cadena de confianza
Monitorear vencimiento del certificadoConfigurar alertas para el día 60 de 90
Usar monitoreo de Certificate TransparencyDetectar certificados no autorizados
Rotar claves en cada renovaciónNo reutilizar claves privadas entre certificados

Cabeceras de seguridad

# HSTS — always use HTTPS (start with short max-age, increase later)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

# Prevent MIME-type sniffing
add_header X-Content-Type-Options "nosniff" always;

# Prevent clickjacking
add_header X-Frame-Options "SAMEORIGIN" always;

# Upgrade insecure sub-resources
add_header Content-Security-Policy "upgrade-insecure-requests" always;

Profundización en HSTS →

Optimización de rendimiento

ConfiguraciónConfigBeneficio
HTTP/2listen 443 ssl http2;Multiplexación, compresión de cabeceras
Caché de sesiónssl_session_cache shared:SSL:10m;Evita re-negociación para visitantes recurrentes
Tickets de sesión desactivadosssl_session_tickets off;Mejor secreto perfecto hacia adelante
OCSP staplingssl_stapling on;Verificación de certificado más rápida, mejor privacidad
Datos tempranos (0-RTT)Por defecto en TLS 1.3Reanudación con latencia cero (usar con precaución)

Configuración completa de Nginx (lista para producción)

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate     /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    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;
    resolver 8.8.8.8 8.8.4.4 valid=300s;

    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;

    root /var/www/html;
}

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

Prueba: Ingresa tu dominio en SSL Labs — esta configuración debería obtener un grado A+.

Qué NO hacer

Mala prácticaPor quéQué hacer en su lugar
ssl_protocols TLSv1 TLSv1.1;Obsoletos, vulnerablesSolo TLS 1.2 + 1.3
ssl_ciphers ALL;Incluye cifrados débilesLista explícita ECDHE + AEAD
ssl_prefer_server_ciphers on; (TLS 1.3)Innecesario — los cifrados TLS 1.3 son todos segurosoff
Usar cert.pem en lugar de fullchain.pemCadena faltante → errores de confianzaSiempre fullchain.pem para Nginx
Certificados autofirmados en producciónAdvertencias del navegador, sin confianzaLet’s Encrypt (gratis)
Misma clave privada durante añosLimita la contención de dañosRotar en cada renovación
Sin HSTSVulnerable a ataques de degradaciónHabilitar después de probar
max-age=0 para HSTSEfectivamente desactiva HSTSEmpezar en 300, aumentar a 63072000

Preguntas frecuentes

¿Cómo pruebo mi configuración SSL?

SSL Labs Server Test — ingresa tu dominio, obtén un informe detallado con calificación (A-F). Verifica soporte de protocolos, fortaleza de cifrados, validez de cadena y vulnerabilidades conocidas.

¿Qué calificación debo buscar?

A+ para sitios en producción. Esto requiere: solo TLS 1.2+, cifrados AEAD, cadena válida, HSTS con max-age largo. La configuración de arriba logra A+.

¿Con qué frecuencia debo revisar mi configuración SSL?

Anualmente, o cuando se anuncie una nueva vulnerabilidad. Suscríbete a la página de estado de Let’s Encrypt y sigue el Mozilla SSL Configuration Generator para recomendaciones actualizadas.

¿Existe una herramienta que genere la configuración correcta para mí?

Sí — Mozilla SSL Configuration Generator. Selecciona tu servidor (Nginx, Apache, etc.), tu versión del servidor y genera una configuración recomendada. El perfil «Modern» coincide con las prácticas de este artículo.

Artículos relacionados

SSL y certificados 2026-05-08
¿Qué es TLS 1.3? Todo lo que cambió
TLS 1.3 es el estándar de cifrado actual: handshake más rápido, secreto perfecto hacia adelante obligatorio, sin algoritmos heredados. Aprende qué cambió respecto a TLS 1.2, cómo habilitarlo y si deberías forzarlo.
SSL y certificados 2026-05-08
¿Qué es el secreto perfecto hacia adelante (Perfect Forward Secrecy)?
El secreto perfecto hacia adelante significa que cada conexión TLS usa una clave única. Incluso si la clave privada de tu servidor se ve comprometida, las conversaciones pasadas no pueden descifrarse. Aprende cómo funciona y cómo asegurarte de que esté habilitado.
SSL y certificados 2026-05-08
HSTS: HTTP Strict Transport Security explicado
HSTS indica a los navegadores que siempre usen HTTPS. Aprende cómo configurar HSTS, qué max-age usar, cuándo añadir preload y los riesgos de hacerlo mal.
Despliegue 2026-05-08
Cómo instalar un certificado SSL en Nginx
Guía paso a paso para instalar un certificado SSL en Nginx. Cubre subida de archivos, configuración completa del bloque server, mejores prácticas TLS, HTTP/2, HSTS, redirección y solución de 6 errores comunes.
Obtén un certificado SSL gratuito en tu navegador
Sin instalación, sin cuenta. Tu clave privada nunca sale de tu dispositivo.
Obtener certificado