Skip to content

Commit b1ba0e8

Browse files
authored
bugfix: failed to start when non-ssl server configured with ssl_certificate… (#250)
1 parent 8485a85 commit b1ba0e8

File tree

2 files changed

+390
-25
lines changed

2 files changed

+390
-25
lines changed

src/ngx_stream_lua_module.c

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -795,42 +795,45 @@ ngx_stream_lua_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
795795

796796
dd("merge srv conf");
797797

798-
if (conf->srv.ssl_cert_src.len == 0) {
799-
conf->srv.ssl_cert_src = prev->srv.ssl_cert_src;
800-
conf->srv.ssl_cert_src_key = prev->srv.ssl_cert_src_key;
801-
conf->srv.ssl_cert_handler = prev->srv.ssl_cert_handler;
802-
}
798+
sscf = ngx_stream_conf_get_module_srv_conf(cf, ngx_stream_ssl_module);
799+
if (sscf && sscf->listen) {
800+
if (conf->srv.ssl_cert_src.len == 0) {
801+
conf->srv.ssl_cert_src = prev->srv.ssl_cert_src;
802+
conf->srv.ssl_cert_src_key = prev->srv.ssl_cert_src_key;
803+
conf->srv.ssl_cert_handler = prev->srv.ssl_cert_handler;
804+
}
803805

804-
if (conf->srv.ssl_cert_src.len) {
805-
sscf = ngx_stream_conf_get_module_srv_conf(cf, ngx_stream_ssl_module);
806-
if (sscf == NULL || sscf->ssl.ctx == NULL) {
807-
ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
808-
"no ssl configured for the server");
806+
if (conf->srv.ssl_cert_src.len) {
807+
sscf = ngx_stream_conf_get_module_srv_conf(cf, ngx_stream_ssl_module);
808+
if (sscf->ssl.ctx == NULL) {
809+
ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
810+
"no ssl configured for the server");
809811

810-
return NGX_CONF_ERROR;
811-
}
812+
return NGX_CONF_ERROR;
813+
}
812814

813815
#ifdef LIBRESSL_VERSION_NUMBER
814816

815-
ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
816-
"LibreSSL is not supported by ssl_certificate_by_lua*");
817-
return NGX_CONF_ERROR;
817+
ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
818+
"LibreSSL is not supported by ssl_certificate_by_lua*");
819+
return NGX_CONF_ERROR;
818820

819821
#else
820822

821823
# if OPENSSL_VERSION_NUMBER >= 0x1000205fL
822824

823-
SSL_CTX_set_cert_cb(sscf->ssl.ctx, ngx_stream_lua_ssl_cert_handler, NULL);
825+
SSL_CTX_set_cert_cb(sscf->ssl.ctx, ngx_stream_lua_ssl_cert_handler, NULL);
824826

825827
# else
826828

827-
ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
828-
"OpenSSL too old to support ssl_certificate_by_lua*");
829-
return NGX_CONF_ERROR;
829+
ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
830+
"OpenSSL too old to support ssl_certificate_by_lua*");
831+
return NGX_CONF_ERROR;
830832

831833
# endif
832834

833835
#endif
836+
}
834837
}
835838

836839

0 commit comments

Comments
 (0)