Comment vérifier si la reprise de session SSL fonctionne ou non?

11

J'utilise nginx et je souhaite implémenter la reprise de session SSL. Comment dois-je tester si cela fonctionne?

J'ai activé ces paramètres:

ssl_session_cache    shared:SSL:10m;
ssl_session_timeout  10m;
Sabya
la source

Réponses:

21

Vous pouvez utiliser openssl pour tester localement:

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

Ou :

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

(L' -no_ticketoption est nécessaire pour désactiver les tickets de session TLS côté client qui permettent également la reprise de la session , mais est un autre paramètre dans nginx, et de limiter le test au côté serveur session SSL mise en cache des contrôles de configuration de l'OP.)

Pour la première commande, vous obtiendrez une sortie comme celle-ci:

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

Pour le dernier, vous obtiendrez ceci en cas de reprise de session:

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

ou ceci en cas d'échec:

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

Vous pouvez voir que la poignée de main est beaucoup plus grande lorsqu'elle est nouvelle.

Bastien Durel
la source
Il serait utile d'expliquer ce que signifie la sortie et comment l'utiliser pour déterminer si la reprise de session fonctionne.
Kevin Cox
1
vérifier "Réutilisé, TLSv1 / SSLv3, le chiffre est <cipher>"
Bastien Durel