aboutsummaryrefslogtreecommitdiff
path: root/src/http/modules/ngx_http_ssl_module.c
diff options
context:
space:
mode:
authorVladimir Homutov <vl@nginx.com>2020-09-15 22:44:46 +0300
committerVladimir Homutov <vl@nginx.com>2020-09-15 22:44:46 +0300
commite8277e42241a848b63d4af2a05ceec156642690c (patch)
treea7bc92fc89a377820de13ef4b2b99dbafbc28c68 /src/http/modules/ngx_http_ssl_module.c
parent26102d7ad77f4aefa12744027778e2f2c8412201 (diff)
downloadnginx-e8277e42241a848b63d4af2a05ceec156642690c.tar.gz
nginx-e8277e42241a848b63d4af2a05ceec156642690c.zip
SSL: added the "ssl_keys_file" directive.
Diffstat (limited to 'src/http/modules/ngx_http_ssl_module.c')
-rw-r--r--src/http/modules/ngx_http_ssl_module.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/http/modules/ngx_http_ssl_module.c b/src/http/modules/ngx_http_ssl_module.c
index 409514821..99dbd8ec6 100644
--- a/src/http/modules/ngx_http_ssl_module.c
+++ b/src/http/modules/ngx_http_ssl_module.c
@@ -119,6 +119,13 @@ static ngx_command_t ngx_http_ssl_commands[] = {
0,
NULL },
+ { ngx_string("ssl_keys_file"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1,
+ ngx_conf_set_str_slot,
+ NGX_HTTP_SRV_CONF_OFFSET,
+ offsetof(ngx_http_ssl_srv_conf_t, keys_file),
+ NULL },
+
{ ngx_string("ssl_dhparam"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1,
ngx_conf_set_str_slot,
@@ -605,6 +612,7 @@ ngx_http_ssl_create_srv_conf(ngx_conf_t *cf)
* sscf->trusted_certificate = { 0, NULL };
* sscf->crl = { 0, NULL };
* sscf->ciphers = { 0, NULL };
+ * sscf->keys_file = { 0, NULL };
* sscf->shm_zone = NULL;
* sscf->ocsp_responder = { 0, NULL };
* sscf->stapling_file = { 0, NULL };
@@ -676,6 +684,8 @@ ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
ngx_conf_merge_ptr_value(conf->passwords, prev->passwords, NULL);
+ ngx_conf_merge_str_value(conf->keys_file, prev->keys_file, "");
+
ngx_conf_merge_str_value(conf->dhparam, prev->dhparam, "");
ngx_conf_merge_str_value(conf->client_certificate, prev->client_certificate,
@@ -912,6 +922,17 @@ ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
return NGX_CONF_ERROR;
}
+ if (conf->keys_file.len) {
+
+ conf->ssl.keylog = ngx_conf_open_file(cf->cycle, &conf->keys_file);
+
+ if (conf->ssl.keylog == NULL) {
+ return NGX_CONF_ERROR;
+ }
+
+ SSL_CTX_set_keylog_callback(conf->ssl.ctx, ngx_ssl_keylogger);
+ }
+
if (conf->stapling) {
if (ngx_ssl_stapling(cf, &conf->ssl, &conf->stapling_file,