]> git.kaiwu.me - nginx.git/commitdiff
SSL: initialization changes for OpenSSL 1.1.0.
authorMaxim Dounin <mdounin@mdounin.ru>
Thu, 31 Mar 2016 20:38:33 +0000 (23:38 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Thu, 31 Mar 2016 20:38:33 +0000 (23:38 +0300)
OPENSSL_config() deprecated in OpenSSL 1.1.0.  Additionally,
SSL_library_init(), SSL_load_error_strings() and OpenSSL_add_all_algorithms()
are no longer available if OPENSSL_API_COMPAT is set to 0x10100000L.

The OPENSSL_init_ssl() function is now used instead with appropriate
arguments to trigger the same behaviour.  The configure test changed to
use SSL_CTX_set_options().

Deinitialization now happens automatically in OPENSSL_cleanup() called
via atexit(3), so we no longer call EVP_cleanup() and ENGINE_cleanup()
directly.

auto/lib/openssl/conf
src/event/ngx_event_openssl.c

index e438050e86484d8a27ef8857747046412fea640c..39d96023732accccdbaad5f31b373b803408f2b2 100644 (file)
@@ -52,7 +52,7 @@ else
         ngx_feature_incs="#include <openssl/ssl.h>"
         ngx_feature_path=
         ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL"
-        ngx_feature_test="SSL_library_init()"
+        ngx_feature_test="SSL_CTX_set_options(NULL, 0)"
         . auto/feature
 
         if [ $ngx_found = no ]; then
index 21c305f91532b41252c7a9fedf8c3503b26a376c..9f3cc86a05279fc57b8596f226445291baa4b063 100644 (file)
@@ -111,6 +111,12 @@ int  ngx_ssl_stapling_index;
 ngx_int_t
 ngx_ssl_init(ngx_log_t *log)
 {
+#if OPENSSL_VERSION_NUMBER >= 0x10100003L
+
+    OPENSSL_init_ssl(OPENSSL_INIT_LOAD_CONFIG, NULL);
+
+#else
+
 #ifndef OPENSSL_IS_BORINGSSL
     OPENSSL_config(NULL);
 #endif
@@ -120,6 +126,8 @@ ngx_ssl_init(ngx_log_t *log)
 
     OpenSSL_add_all_algorithms();
 
+#endif
+
 #if OPENSSL_VERSION_NUMBER >= 0x0090800fL
 #ifndef SSL_OP_NO_COMPRESSION
     {
@@ -3548,8 +3556,12 @@ ngx_openssl_engine(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
 static void
 ngx_openssl_exit(ngx_cycle_t *cycle)
 {
+#if OPENSSL_VERSION_NUMBER < 0x10100003L
+
     EVP_cleanup();
 #ifndef OPENSSL_NO_ENGINE
     ENGINE_cleanup();
 #endif
+
+#endif
 }