Mercurial > hg > nginx
comparison src/http/ngx_http_request.c @ 7414:ea3f1f9af72c stable-1.14
SSL: fixed SSL_clear_options() usage with OpenSSL 1.1.0+.
In OpenSSL 1.1.0 the SSL_CTRL_CLEAR_OPTIONS macro was removed, so
conditional compilation test on it results in SSL_clear_options()
and SSL_CTX_clear_options() not being used. Notably, this caused
"ssl_prefer_server_ciphers off" to not work in SNI-based virtual
servers if server preference was switched on in the default server.
It looks like the only possible fix is to test OPENSSL_VERSION_NUMBER
explicitly.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 16 Jul 2018 17:47:20 +0300 |
parents | c693daca57f7 |
children |
comparison
equal
deleted
inserted
replaced
7413:7c00d8dbdb3a | 7414:ea3f1f9af72c |
---|---|
921 SSL_set_verify(ssl_conn, SSL_CTX_get_verify_mode(sscf->ssl.ctx), | 921 SSL_set_verify(ssl_conn, SSL_CTX_get_verify_mode(sscf->ssl.ctx), |
922 SSL_CTX_get_verify_callback(sscf->ssl.ctx)); | 922 SSL_CTX_get_verify_callback(sscf->ssl.ctx)); |
923 | 923 |
924 SSL_set_verify_depth(ssl_conn, SSL_CTX_get_verify_depth(sscf->ssl.ctx)); | 924 SSL_set_verify_depth(ssl_conn, SSL_CTX_get_verify_depth(sscf->ssl.ctx)); |
925 | 925 |
926 #ifdef SSL_CTRL_CLEAR_OPTIONS | 926 #if OPENSSL_VERSION_NUMBER >= 0x009080dfL |
927 /* only in 0.9.8m+ */ | 927 /* only in 0.9.8m+ */ |
928 SSL_clear_options(ssl_conn, SSL_get_options(ssl_conn) & | 928 SSL_clear_options(ssl_conn, SSL_get_options(ssl_conn) & |
929 ~SSL_CTX_get_options(sscf->ssl.ctx)); | 929 ~SSL_CTX_get_options(sscf->ssl.ctx)); |
930 #endif | 930 #endif |
931 | 931 |