Jak sprawdzić, czy wznowienie sesji SSL działa, czy nie?

11

Używam nginx i chcę wdrożyć wznawianie sesji SSL. Jak powinniśmy przetestować, czy działa?

Włączyłem te ustawienia:

ssl_session_cache    shared:SSL:10m;
ssl_session_timeout  10m;
Sabya
źródło

Odpowiedzi:

21

Możesz użyć openssl do testowania lokalnego:

openssl s_client -connect example.com:443 -reconnect -no_ticket

Lub:

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

(The -no_ticketopcja jest potrzebna, aby wyłączyć biletów sesji TLS po stronie klienta , które umożliwiają także wznowienie sesji, ale jest inne ustawienie w nginx, i ograniczają test na stronie serwera sesji SSL buforowanie kontroli konfiguracji PO Użytkownika).

Dla pierwszego polecenia otrzymasz wynik w następujący sposób:

drop connection and then reconnect
CONNECTED(00000003)
---
Reused, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256

W ostatnim przypadku otrzymasz to w przypadku wznowienia sesji:

SSL handshake has read 142 bytes and written 583 bytes
---
Reused, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256

lub to w przypadku awarii:

SSL handshake has read 5855 bytes and written 722 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-GCM-SHA384

Widać, że uścisk dłoni jest znacznie większy, gdy jest nowy.

Bastien Durel
źródło
Przydałoby się wyjaśnienie, co oznacza dane wyjściowe i jak go użyć, aby ustalić, czy wznowienie sesji działa.
Kevin Cox,
1
sprawdź „Ponownie użyty, TLSv1 / SSLv3, Cipher is <cipher>”
Bastien Durel,