Я использую nginx, и хочу реализовать возобновление сеанса SSL. Как мне проверить, работает ли он?
Я включил эти настройки:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
Я не уверен в способе локального тестирования, но если ваш сайт общедоступен, ssllabs предоставляет хороший инструмент для тестирования:
Вы можете использовать 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 сессии на стороне сервера кэширования управления конфигурационных параметров порядка) .
Для первой команды вы получите такой вывод:
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
Вы можете видеть, что рукопожатие становится намного больше, когда оно новое.