Я использую nginx и хочу реализовать возобновление сеанса SSL. Как мне проверить, работает ли он?
Я включил эти настройки:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
Вы можете использовать openssl для локального тестирования:
openssl s_client -connect example.com:443 -reconnect -no_ticket
Или :
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_ticket
опция необходима для отключения клиентские билеты сеанса TLS которые также позволяют возобновить сеанс, но другая обстановка в nginx
, и ограничить тест кеширование сеансов SSL на стороне сервера элементы управления конфигурацией OP.)
Для первой команды вы получите следующий результат:
drop connection and then reconnect
CONNECTED(00000003)
---
Reused, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Для последнего вы получите это в случае возобновления сеанса:
SSL handshake has read 142 bytes and written 583 bytes
---
Reused, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
или это в случае отказа:
SSL handshake has read 5855 bytes and written 722 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-GCM-SHA384
Вы можете видеть, что рукопожатие намного больше, когда оно новое.
Я не уверен, как протестировать локально, но если ваш сайт является общедоступным, ssllabs предоставляют хороший инструмент для тестирования: