|
| 1 | +# |
| 2 | +# TLS session resumption statistics |
| 3 | +# |
| 4 | +# |
| 5 | +# TLS 1.2, session ticket |
| 6 | +# |
| 7 | +set @hits=(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_session_cache_hits'), |
| 8 | +@stored=(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_used_session_cache_entries'); |
| 9 | +openssl s_client -ign_eof -tls1_2 -sess_out tls_session.pem |
| 10 | +openssl s_client -ign_eof -tls1_2 -sess_in tls_session.pem |
| 11 | +RESUMED |
| 12 | +select (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_session_cache_hits') - @hits as 'hits increase', |
| 13 | +(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_used_session_cache_entries') - @stored as 'stored on the server'; |
| 14 | +hits increase stored on the server |
| 15 | +1 0 |
| 16 | +# |
| 17 | +# TLS 1.2, session id. Unlike a ticket, this session is also stored in |
| 18 | +# the server side cache, so it is the only case that fills it up |
| 19 | +# |
| 20 | +set @hits=(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_session_cache_hits'), |
| 21 | +@stored=(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_used_session_cache_entries'); |
| 22 | +openssl s_client -ign_eof -tls1_2 -no_ticket -sess_out tls_session.pem |
| 23 | +openssl s_client -ign_eof -tls1_2 -no_ticket -sess_in tls_session.pem |
| 24 | +RESUMED |
| 25 | +select (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_session_cache_hits') - @hits as 'hits increase', |
| 26 | +(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_used_session_cache_entries') - @stored as 'stored on the server'; |
| 27 | +hits increase stored on the server |
| 28 | +1 1 |
| 29 | +# |
| 30 | +# TLS 1.3, session ticket. No session id resumption exists in TLS 1.3, |
| 31 | +# so like a TLS 1.2 ticket it leaves nothing on the server |
| 32 | +# |
| 33 | +set @hits=(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_session_cache_hits'), |
| 34 | +@stored=(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_used_session_cache_entries'); |
| 35 | +openssl s_client -ign_eof -tls1_3 -sess_out tls_session.pem |
| 36 | +openssl s_client -ign_eof -tls1_3 -sess_in tls_session.pem |
| 37 | +RESUMED |
| 38 | +select (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_session_cache_hits') - @hits as 'hits increase', |
| 39 | +(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_used_session_cache_entries') - @stored as 'stored on the server'; |
| 40 | +hits increase stored on the server |
| 41 | +1 0 |
| 42 | +# |
| 43 | +# A session cannot be resumed across FLUSH SSL: it replaces the |
| 44 | +# acceptor context, and with it the session cache and the ticket keys |
| 45 | +# |
| 46 | +set @hits=(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_session_cache_hits'), |
| 47 | +@stored=(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_used_session_cache_entries'); |
| 48 | +openssl s_client -ign_eof -tls1_3 -sess_out tls_session.pem |
| 49 | +openssl s_client -ign_eof -tls1_3 -sess_in tls_session.pem |
| 50 | +RESUMED |
| 51 | +select (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_session_cache_hits') - @hits as 'hits increase', |
| 52 | +(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_used_session_cache_entries') - @stored as 'stored on the server'; |
| 53 | +hits increase stored on the server |
| 54 | +1 0 |
| 55 | +FLUSH SSL; |
| 56 | +openssl s_client -ign_eof -tls1_3 -sess_in tls_session.pem |
| 57 | +FULL |
| 58 | +# and it resets the acceptor statistics |
| 59 | +select (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_session_cache_hits') as 'Ssl_session_cache_hits', |
| 60 | +(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME= 'Ssl_used_session_cache_entries') as 'Ssl_used_session_cache_entries'; |
| 61 | +Ssl_session_cache_hits Ssl_used_session_cache_entries |
| 62 | +0 0 |
| 63 | +# End of 13.2 tests |
0 commit comments