]> git.kaiwu.me - nginx.git/commitdiff
SSL: use of SSL_MODE_NO_AUTO_CHAIN.
authorMaxim Dounin <mdounin@mdounin.ru>
Sun, 22 Mar 2015 23:42:35 +0000 (02:42 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Sun, 22 Mar 2015 23:42:35 +0000 (02:42 +0300)
The SSL_MODE_NO_AUTO_CHAIN mode prevents OpenSSL from automatically
building a certificate chain on the fly if there is no certificate chain
explicitly provided.  Before this change, certificates provided via the
ssl_client_certificate and ssl_trusted_certificate directives were
used by OpenSSL to automatically build certificate chains, resulting
in unexpected (and in some cases unneeded) chains being sent to clients.

src/event/ngx_event_openssl.c

index 83186f582f04291956ca0513a9fff03f703cbb69..1b789e687f4931ee813f6f8d919fa471cca1a8e3 100644 (file)
@@ -285,6 +285,10 @@ ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols, void *data)
     SSL_CTX_set_mode(ssl->ctx, SSL_MODE_RELEASE_BUFFERS);
 #endif
 
+#ifdef SSL_MODE_NO_AUTO_CHAIN
+    SSL_CTX_set_mode(ssl->ctx, SSL_MODE_NO_AUTO_CHAIN);
+#endif
+
     SSL_CTX_set_read_ahead(ssl->ctx, 1);
 
     SSL_CTX_set_info_callback(ssl->ctx, ngx_ssl_info_callback);