Como devo verificar se a retomada da sessão SSL está funcionando ou não?

11

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;
Sabya
fonte

Respostas:

21

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_ticketopçã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.

Bastien Durel
fonte
Seria útil se você pudesse explicar o significado da saída e como usá-la para determinar se a retomada da sessão está funcionando.
Kevin Cox
1
verifique se há "Reutilizado, TLSv1 / SSLv3, a cifra é <cifra>"
Bastien Durel