Mi objetivo es garantizar la seguridad adecuada para los clientes que se conectan a mi nginx. Estoy siguiendo la guía de Mozilla para configurar TLS correctamente en mi instalación de nginx, pero no tengo una descripción general de los protocolos / conjuntos de cifrado reales que se utilizan en la práctica.
Lo que tengo ahora:
server {
listen 443;
ssl on;
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_dhparam /path/to/dhparam.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'the_long_ciphersuite_listed_there';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
}
Con esto, me gustaría registrar qué protocolo SSL se usó para una conexión y qué conjunto de cifrado se eligió después de que el cliente / servidor negoció. P.ej:
10.1.2.3 - - [13/Aug/2014:12:34:56 +0200] "GET / HTTP/1.1" 200 1234 "-" "User agent bla"
a
10.1.2.3 - - [13/Aug/2014:12:34:56 +0200] ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 "GET / HTTP/1.1" 200 1234 "-" "User agent bla"
De esta forma, puedo identificar rápidamente a los clientes que usan navegadores obsoletos o máquinas automatizadas que no admiten PFS u otras tecnologías relevantes de seguridad.
¿Cómo configuro nginx para registrar esta información?