diff --git a/README.md b/README.md index 0504e8a..cb8b0a7 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ stream { The master version OpenSSL is required because this module fetches the extensions types declared at SSL/TLS Client Hello by using the new early -callback [SSL_CTX_set_early_cb](https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set_early_cb.html). +callback [SSL_CTX_set_client_hello_cb](https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set_client_hello_cb.html). I was unable to find a way to get these values with the current versions of nginx and OpenSSL. diff --git a/config b/config index 5a3daae..d1215a8 100644 --- a/config +++ b/config @@ -27,15 +27,15 @@ NGX_ADDON_SRCS="$NGX_ADDON_SRCS \ CORE_LIBS="$CORE_LIBS" # -# OpenSSL 1.1.1 with SSL_CTX_set_early_cb +# OpenSSL 1.1.1 with SSL_CTX_set_client_hello_cb # -ngx_feature="SSL_CTX_set_early_cb()" -ngx_feature_name="NGX_HAVE_OPENSSL_SSL_EARLY_CB" +ngx_feature="SSL_CTX_set_client_hello_cb()" +ngx_feature_name="NGX_HAVE_OPENSSL_SSL_CLIENT_HELLO_CB" ngx_feature_run=no ngx_feature_incs="#include " ngx_feature_path= ngx_feature_libs="-lssl $NGX_LD_OPT" -ngx_feature_test="SSL_CTX_set_early_cb(0, 0, 0);" +ngx_feature_test="SSL_CTX_set_client_hello_cb(0, 0, 0);" . auto/feature if [ $ngx_found = no ]; then diff --git a/docker/debian-nginx-ssl-ja3/nginx.ssl.extensions.patch b/docker/debian-nginx-ssl-ja3/nginx.ssl.extensions.patch index 8683e96..70c97bb 100644 --- a/docker/debian-nginx-ssl-ja3/nginx.ssl.extensions.patch +++ b/docker/debian-nginx-ssl-ja3/nginx.ssl.extensions.patch @@ -28,7 +28,7 @@ diff -r 2e8de3d81783 src/event/ngx_event_openssl.c + c->ssl->client_extensions_size = 0; + c->ssl->client_extensions = NULL; + -+ got_extensions = SSL_early_get1_extensions_present(s, ++ got_extensions = SSL_client_hello_get1_extensions_present(s, + &ext_out, + &ext_len); + if (!got_extensions) { @@ -67,7 +67,7 @@ diff -r 2e8de3d81783 src/event/ngx_event_openssl.c ngx_ssl_clear_error(c->log); +#if OPENSSL_VERSION_NUMBER >= 0x10101000L -+ SSL_CTX_set_early_cb(c->ssl->session_ctx, ngx_SSL_early_cb_fn, c); ++ SSL_CTX_set_client_hello_cb(c->ssl->session_ctx, ngx_SSL_early_cb_fn, c); +#endif + n = SSL_do_handshake(c->ssl->connection);