Estoy usando nginx y quiero implementar la reanudación de la sesión SSL. ¿Cómo deberíamos probar si está funcionando?
He habilitado esta configuración:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
No estoy seguro de una forma de probar localmente, pero si su sitio es público, ssllabs proporciona una buena herramienta de prueba:
Puede usar openssl para probar localmente:
openssl s_client -connect example.com:443 -reconnect -no_ticket
O:
openssl s_client -connect example.com:443 -no_ticket -sess_out /tmp/ssl_s
openssl s_client -connect example.com:443 -no_ticket -sess_in /tmp/ssl_s
(La -no_ticket
opción es necesaria para desactivar los vales de sesión de cliente TLS que también permiten sesión de reanudación, pero es una configuración diferente en nginx
, y limitan la prueba a la sesión SSL del lado del servidor de almacenamiento en caché los controles de configuración de la OP).
Para el primer comando obtendrá una salida como esta:
drop connection and then reconnect
CONNECTED(00000003)
---
Reused, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Para el último, obtendrá esto en caso de reanudación de la sesión:
SSL handshake has read 142 bytes and written 583 bytes
---
Reused, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
o esto en caso de falla:
SSL handshake has read 5855 bytes and written 722 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-GCM-SHA384
Puedes ver que el apretón de manos es mucho más grande cuando es nuevo.