Esquema de configuración de seguridad y SSL/TLS en Nginx Proxy Inverso
Servidores Web• 28 de febrero de 2026• 3 min de lectura

Fortificación de Nginx y Cifrado Seguro SSL / TLS 1.3

Guía técnica para la optimización y aseguramiento de servidores web Nginx. Cifrado estricto TLS 1.3, encabezados de seguridad OWASP (HSTS, CSP), mitigación de Slowloris y limitación de tasa de peticiones.

Puntos Clave / TL;DR (Respuesta Rápida)
  • Eliminar fugas de versión: Configurar server_tokens off en nginx.conf para evitar que atacantes conozcan la versión exacta de tu software.
  • Cifrado moderno estricto: Habilitar exclusivamente TLSv1.2 y TLSv1.3 con suites de cifrado modernas (Mozilla Modern Configuration) para obtener A+ en SSL Labs.
  • Encabezados de protección OWASP: Configurar HSTS (Strict-Transport-Security con preload), Content-Security-Policy y X-Frame-Options DENY.
  • Mitigación de abusos: Aplicar limit_req_zone en rutas críticas como login y API para prevenir ataques de denegación de servicio a nivel de aplicación.

Nginx es una de las soluciones de servidor web y proxy inverso más utilizadas a nivel global. Sin embargo, su configuración por defecto incluye identificadores de versión expuestos y conjuntos de cifrado obsoletos que reducen el nivel de seguridad de la infraestructura. Para asegurar el servidor a nivel de sistema operativo antes de instalar Nginx, revisa nuestra guía de Hardening de Servidores VPS Linux.

1. Encabezados de Seguridad Recomendados por OWASP

La siguiente tabla detalla los encabezados HTTP que deben inyectarse en la respuesta del proxy inverso para proteger a los usuarios de ataques XSS, Clickjacking y degradación de protocolo:

Tabla 1: Encabezados de Seguridad HTTP en Nginx y Amenazas Mitigadas

Encabezado HTTPValor RecomendadoAmenaza Mitigada
Strict-Transport-Security (HSTS)max-age=63072000; includeSubDomains; preloadDegradación de conexión (SSL Stripping) e interceptación de tráfico
X-Frame-OptionsDENY / SAMEORIGINClickjacking y embebido no autorizado en iframes externos
X-Content-Type-OptionsnosniffMIME-sniffing de archivos interpretados indebidamente por el navegador
Content-Security-Policy (CSP)default-src 'self'; script-src 'self'Inyección de scripts maliciosos y Cross-Site Scripting (XSS)

2. Ocultar la Versión del Servidor (Server Tokens)

Evitar la divulgación de información (Information Disclosure) impide que atacantes identifiquen versiones vulnerables específicas del servidor Nginx mediante cabeceras HTTP:

/etc/nginx/nginx.confnginx
http {
    # Desactivar la emisión de la versión de Nginx en cabeceras de respuesta y páginas de error
    server_tokens off;
    
    # Ajustar tamaño máximo de cuerpo de petición (previene subidas excesivas)
    client_max_body_size 10M;
    
    # Tiempos de espera estrictos para mitigar conexiones lentas (Slowloris)
    client_body_timeout 10s;
    client_header_timeout 10s;
    keepalive_timeout 65s;
    send_timeout 10s;
}

3. Configuración Estricta de SSL/TLS (TLS 1.2 y TLS 1.3)

Se deben desactivar los protocolos obsoletos SSLv3, TLS 1.0 y TLS 1.1, forzando la utilización exclusiva de suites de cifrado seguras con Forward Secrecy (PFS):

/etc/nginx/conf.d/ssl-params.confnginx
# Protocolos permitidos (Deshabilitar TLS 1.0 y 1.1)
ssl_protocols TLSv1.2 TLSv1.3;

# Suites de cifrado recomendadas por OWASP / Mozilla Modern Configuration
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

# Caché de sesiones SSL para optimizar latencia
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;

# Parámetros Diffie-Hellman de 4096 bits
ssl_dhparam /etc/ssl/certs/dhparam.pem;

# OCSP Stapling para validar revocación de certificados
ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 8.8.8.8 valid=300s;
resolver_timeout 5s;

4. Rate Limiting de Peticiones contra Abuso y DDoS L7

Limitar la tasa de peticiones entrantes protege las rutas de API y login contra ataques de fuerza bruta y ataques HTTP flood. Para mitigaciones a nivel de paquete de red, consulta nuestra guía de Mitigación de Ataques DDoS en Linux.

/etc/nginx/conf.d/rate-limit.confnginx
# Zona de memoria para rastreo por IP (10 megabytes = ~160,000 IPs)
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;

server {
    listen 443 ssl http2;
    server_name jorgebyte.com;

    location /api/ {
        # Permitir ráfagas de hasta 20 peticiones con retardo
        limit_req zone=api_limit burst=20 nodelay;
        limit_req_status 429;
        
        proxy_pass http://backend_upstream;
    }
}

5. Interlinking con la Arquitectura Enterprise

Nginx no opera de forma aislada: actúa como el Ingress Proxy que termina el cifrado TLS y distribuye el tráfico hacia el API Gateway en Go y los microservicios backend. Puedes explorar este flujo en vivo en nuestro Diagrama Interactivo de Arquitectura.

Artículos Relacionados del Cluster de Seguridad