Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

disable nginx session tickets for resumption test #34

Merged
merged 1 commit into from
Jun 27, 2024

Conversation

cpu
Copy link
Member

@cpu cpu commented Jun 26, 2024

With Nginx 1.24.0 we saw a regression in the runner nginx test when checking that session resumption worked as expected with a curl client (#30). This branch fixes the issue by disabling ssl_session_tickets for the server config using ssl_session_cache shared:... (port 8446).

Since Nginx 1.23.2 (nginx/nginx@1d572e3), the shared session cache has done double duty, also managing generating, storing, and updating TLS session ticket keys. This is done primarily with the OpenSSL
SSL_CTX_set_tlsext_ticket_key_cb/SSL_CTX_set_tlsext_ticket_key_evp_cb APIs, which we don't yet support. We're also not setting a ticketer for the Rustls ServerConfig we construct.

The net result is that when using our compat shim with Nginx 1.23.2+ we need to explicitly disable session ticket support in order for the shared session cache to work the way we expect for classic sessions.

Separately, we should investigate proper session ticket support. In the meantime this restores the testing we intended to be happening and clarifies where the limitation is.

Updates #30

With Nginx 1.24.0 we saw a regression in the runner `nginx` test when
checking that session resumption worked as expected with a `curl`
client. This commit fixes the issue by disabling `ssl_session_tickets`
for the server config using `ssl_session_cache shared:...` (port 8446).

Since Nginx 1.23.2, the `shared` session cache has done double duty,
also managing generating, storing, and updating TLS session ticket keys.
This is done primarily with the OpenSSL
`SSL_CTX_set_tlsext_ticket_key_cb`/`SSL_CTX_set_tlsext_ticket_key_evp_cb`
APIs, which we don't yet support. We're also not setting a ticketer for
the Rustls `ServerConfig` we construct.

The net result is that when using our compat shim with Nginx 1.23.2+ we
need to explicitly disable session ticket support in order for the
`shared` session cache to work the way we expect for classic sessions.
@cpu cpu merged commit 2ac5c77 into rustls:main Jun 27, 2024
14 checks passed
@cpu cpu deleted the cpu-nginx-1_24-resumption-tests-fix branch June 27, 2024 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants