mirror of
https://github.com/nginx/nginx.git
synced 2024-11-27 15:39:01 +08:00
SSL: disabled renegotiation checks with LibreSSL.
Similar to 7356:e3ba4026c02d, as long as SSL_OP_NO_CLIENT_RENEGOTIATION is defined, it is the library responsibility to prevent renegotiation. Additionally, this allows to raise LibreSSL version used to redefine OPENSSL_VERSION_NUMBER to 0x1010000fL, such that this won't result in attempts to dereference SSL objects made opaque in LibreSSL 3.4.0. Patch by Maxim Dounin.
This commit is contained in:
parent
c0134ded9f
commit
d7923960a8
@ -1105,7 +1105,8 @@ ngx_ssl_info_callback(const ngx_ssl_conn_t *ssl_conn, int where, int ret)
|
||||
BIO *rbio, *wbio;
|
||||
ngx_connection_t *c;
|
||||
|
||||
#ifndef SSL_OP_NO_RENEGOTIATION
|
||||
#if (!defined SSL_OP_NO_RENEGOTIATION \
|
||||
&& !defined SSL_OP_NO_CLIENT_RENEGOTIATION)
|
||||
|
||||
if ((where & SSL_CB_HANDSHAKE_START)
|
||||
&& SSL_is_server((ngx_ssl_conn_t *) ssl_conn))
|
||||
@ -1838,9 +1839,10 @@ ngx_ssl_handshake(ngx_connection_t *c)
|
||||
c->read->ready = 1;
|
||||
c->write->ready = 1;
|
||||
|
||||
#ifndef SSL_OP_NO_RENEGOTIATION
|
||||
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||
#ifdef SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS
|
||||
#if (!defined SSL_OP_NO_RENEGOTIATION \
|
||||
&& !defined SSL_OP_NO_CLIENT_RENEGOTIATION \
|
||||
&& defined SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS \
|
||||
&& OPENSSL_VERSION_NUMBER < 0x10100000L)
|
||||
|
||||
/* initial handshake done, disable renegotiation (CVE-2009-3555) */
|
||||
if (c->ssl->connection->s3 && SSL_is_server(c->ssl->connection)) {
|
||||
@ -1848,8 +1850,6 @@ ngx_ssl_handshake(ngx_connection_t *c)
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (defined BIO_get_ktls_send && !NGX_WIN32)
|
||||
|
||||
@ -2483,7 +2483,8 @@ ngx_ssl_handle_recv(ngx_connection_t *c, int n)
|
||||
int sslerr;
|
||||
ngx_err_t err;
|
||||
|
||||
#ifndef SSL_OP_NO_RENEGOTIATION
|
||||
#if (!defined SSL_OP_NO_RENEGOTIATION \
|
||||
&& !defined SSL_OP_NO_CLIENT_RENEGOTIATION)
|
||||
|
||||
if (c->ssl->renegotiation) {
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user