Estou usando o nginx e quero implementar a retomada da sessão SSL. Como devemos testar se está funcionando?
Eu ativei estas configurações:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
Não tenho certeza de uma maneira de testar localmente, mas se o seu site for público, o ssllabs fornece uma boa ferramenta de teste:
Você pode usar o openssl para testar localmente:
openssl s_client -connect example.com:443 -reconnect -no_ticket
Ou:
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
(A -no_ticket
opção é necessária para desativar tickets de sessão do lado do cliente TLS que também permitem a retomada sessão, mas é uma configuração diferente no nginx
, e limitar o teste para a sessão SSL do lado do servidor cache controles de configuração do OP.)
Para o primeiro comando, você obterá resultados como este:
drop connection and then reconnect
CONNECTED(00000003)
---
Reused, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Para o último, você receberá isso em caso de retomada da sessão:
SSL handshake has read 142 bytes and written 583 bytes
---
Reused, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
ou isso em caso de falha:
SSL handshake has read 5855 bytes and written 722 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-GCM-SHA384
Você pode ver que o aperto de mão é muito maior quando é novo.