web-dev-qa-db-ja.com

SSLセッションの再開が機能しているかどうかを確認するにはどうすればよいですか?

Nginxを使用しており、SSLセッションの再開を実装したい。それが機能しているかどうかをどのようにテストすればよいですか?

これらの設定を有効にしました:

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

ローカルでテストする方法はわかりませんが、サイトが公開されている場合、ssllabsは素晴らしいテストツールを提供します。

https://www.ssllabs.com/ssldb/index.html

10
Shish

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

ハンドシェイクが新しいときは、もっと大きくなっていることがわかります。

21
Bastien Durel