Nota: Este artículo fue publicado originalmente en 2014. Algunos pasos, comandos o versiones de software pueden haber cambiado. Consulta la documentación actual de NginX para la información más reciente.
Requisitos Previos
Antes de comenzar, asegúrate de tener:
- Un servidor Linux con Nginx instalado
- Acceso root o sudo al servidor
- Comprensión básica de la configuración de servidores web
Mejorar el Rendimiento SSL en NginX
Te sorprenderías, pero muchas personas enfrentan problemas de rendimiento SSL al usar NginX. Hay ciertos algoritmos o cifrados que requieren mucho procesamiento (potencia de CPU), lo que resulta en configuraciones SSL lentas.
Hay varias cosas que puedes hacer para acelerar SSL, como OCSP Stapling, pero también deshabilitar ciertos cifrados porque son simplemente muy lentos. Por ejemplo, NginX usa el algoritmo DHE para crear el cifrado. Este algoritmo es realmente lento con NginX. Deshabilitarlo resulta en mejoras dramáticas.
Configuración Recomendada
Agrega la siguiente configuración a tu bloque server en NginX:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
Explicación
- ssl_protocols: Ofrecemos TLS versiones 1, 1.1 y 1.2 para compatibilidad con diferentes navegadores
- ssl_ciphers: Lista mejorada de cifrados SSL que debes soportar, excluyendo los lentos
- ssl_prefer_server_ciphers: Indica al cliente que prefiera usar los cifrados especificados por el servidor
- ssl_session_cache: Permite almacenar en caché las sesiones SSL (recrear una sesión SSL es una operación costosa)
- ssl_session_timeout: Indica el tiempo de expiración para una sesión SSL
Resumen
Has aprendido exitosamente cómo mejorar el rendimiento SSL en NginX. Si encuentras algún problema, verifica los requisitos previos y asegúrate de que tu entorno NginX esté correctamente configurado.