La seguridad de los datos transmitidos en la web es obligatoria para cualquier negocio serio. El uso básico de certificados HTTPS (como Let's Encrypt) ya es común; sin embargo, la configuración predeterminada del servidor web Nginx a menudo acepta cifrados y protocolos de cifrado antiguos e inseguros por motivos de compatibilidad.
En este tutorial de ingeniería de redes, mostramos cómo realizar el hardening del protocolo SSL/TLS en Nginx para blindar sus conexiones y obtener la calificación máxima (A+) en la prueba de seguridad global de Qualys SSL Labs.
1. Desactivando Protocolos Obsoletos (TLS 1.0 y 1.1)
Los protocolos antiguos como SSLv3, TLS 1.0 y TLS 1.1 poseen fallos conocidos (como POODLE y BEAST). Debemos aceptar únicamente conexiones basadas en las versiones TLS 1.2 y TLS 1.3.
En el bloque server de configuración de Nginx:
ssl_protocols TLSv1.2 TLSv1.3;
2. Definiendo Cifras de Cifrado Fuertes
Evite cifrados basados en algoritmos de cifrado vulnerables, como RC4 o 3DES. Las cifras modernas con intercambio de claves seguro mediante curvas elípticas (ECDHE) son más robustas y rápidas.
ssl_prefer_server_ciphers on;
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';
3. Implementando HSTS (Strict Transport Security)
HSTS es una cabecera de respuesta HTTP que indica al navegador que fuerce cualquier conexión futura estrictamente a través de HTTPS, evitando ataques de interceptación ("Man-in-the-Middle") durante los redireccionamientos de HTTP a HTTPS.
Agregue la línea en Nginx:
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
4. Optimización del Rendimiento (Session Resumption y OCSP)
Cifrar conexiones consume procesamiento de CPU. Optimice estos handshakes para que la navegación del usuario final siga siendo rápida:
- SSL Session Cache: Guarda parámetros de conexiones recientes en la memoria RAM, acelerando el retorno del mismo visitante.
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
- OCSP Stapling: El propio servidor consulta la validez del certificado en la autoridad de certificación y lo adjunta en la solicitud inicial del cliente, ahorrando consultas de DNS y red del visitante.
ssl_stapling on;
ssl_stapling_verify on;
Conclusión
Configurar SSL/TLS de forma optimizada protege los datos sensibles de sus clientes (como tarjetas de crédito e información de inicio de sesión) y ayuda al posicionamiento orgánico de SEO del sitio web. Al implementar estas políticas en su servidor Nginx, garantiza el nivel más alto de integridad de datos del mercado.