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;
Je ne suis pas sûr d'un moyen de tester localement, mais si votre site est public, ssllabs fournit un bel outil de test:
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_ticket
option 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.