如何检查SSL会话恢复是否正常?


11

我正在使用nginx,并且想要实现SSL会话恢复。我应该如何测试它是否有效?

我已启用以下设置:

ssl_session_cache    shared:SSL:10m;
ssl_session_timeout  10m;

Answers:



21

您可以使用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

(该-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

您会发现新握手时的握手会更大。


如果您可以解释输出的含义以及如何使用它来确定会话恢复是否有效,将很有帮助。
凯文·考克斯

1
检查“重用的TLSv1 / SSLv3,密码为<cipher>”
Bastien Durel 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.