]> git.kaiwu.me - nginx.git/commit
Merging r4034, r4186, r4187, r4229, r4235, r4237:
authorIgor Sysoev <igor@sysoev.ru>
Tue, 1 Nov 2011 13:00:30 +0000 (13:00 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Tue, 1 Nov 2011 13:00:30 +0000 (13:00 +0000)
commit8f86bdbb06393fdd48054c955aca4114f88c4ad7
treecb5502b9c4e79b709ac5c460a5bb959960960e43
parenta24ed0758363a86f4d8295d301a251bee8f09dd4
Merging r4034, r4186, r4187, r4229, r4235, r4237:

SSL related fixes:

*) Better handling of various per-server ssl options with SNI.

   SSL_set_SSL_CTX() doesn't touch values cached within ssl connection
   structure, it only changes certificates (at least as of now, OpenSSL
   1.0.0d and earlier).

   As a result settings like ssl_verify_client, ssl_verify_depth,
   ssl_prefer_server_ciphers are only configurable on per-socket basis while
   with SNI it should be possible to specify them different for two servers
   listening on the same socket.

   Workaround is to explicitly re-apply settings we care about from context
   to ssl connection in servername callback.

   Note that SSL_clear_options() is only available in OpenSSL 0.9.8m+.  I.e.
   with older versions it is not possible to clear ssl_prefer_server_ciphers
   option if it's set in default server for a socket.

*) Disabling SSL compression. This saves about 300K per SSL connection.
   The SSL_OP_NO_COMPRESSION option is available since OpenSSL 1.0.0.

*) Releasing memory of idle SSL connection. This saves about 34K per SSL
   connection. The SSL_MODE_RELEASE_BUFFERS option is available since
   OpenSSL 1.0.0d.

*) Decrease of log level of some SSL handshake errors.

*) Fixed segfault on configuration testing with ssl (ticket #37).

   The following config caused segmentation fault due to conf->file not
   being properly set if "ssl on" was inherited from the http level:

   http {
       ssl on;
       server {
       }
   }

*) Silently ignoring a stale global SSL error left after disabled renegotiation.
src/event/ngx_event_openssl.c
src/http/modules/ngx_http_ssl_module.c
src/http/ngx_http_request.c