comparison src/http/modules/ngx_http_uwsgi_module.c @ 8786:d514f88053e5 quic

Merged with the default branch.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 28 May 2021 13:33:08 +0300
parents 3ab8e1e2f0f7
children b87b7092cedb
comparison
equal deleted inserted replaced
8785:e6c26cb4d38b 8786:d514f88053e5
52 ngx_uint_t ssl_protocols; 52 ngx_uint_t ssl_protocols;
53 ngx_str_t ssl_ciphers; 53 ngx_str_t ssl_ciphers;
54 ngx_uint_t ssl_verify_depth; 54 ngx_uint_t ssl_verify_depth;
55 ngx_str_t ssl_trusted_certificate; 55 ngx_str_t ssl_trusted_certificate;
56 ngx_str_t ssl_crl; 56 ngx_str_t ssl_crl;
57 ngx_str_t ssl_certificate;
58 ngx_str_t ssl_certificate_key;
59 ngx_array_t *ssl_passwords;
60 ngx_array_t *ssl_conf_commands; 57 ngx_array_t *ssl_conf_commands;
61 #endif 58 #endif
62 } ngx_http_uwsgi_loc_conf_t; 59 } ngx_http_uwsgi_loc_conf_t;
63 60
64 61
546 offsetof(ngx_http_uwsgi_loc_conf_t, ssl_crl), 543 offsetof(ngx_http_uwsgi_loc_conf_t, ssl_crl),
547 NULL }, 544 NULL },
548 545
549 { ngx_string("uwsgi_ssl_certificate"), 546 { ngx_string("uwsgi_ssl_certificate"),
550 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, 547 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
551 ngx_conf_set_str_slot, 548 ngx_http_set_complex_value_zero_slot,
552 NGX_HTTP_LOC_CONF_OFFSET, 549 NGX_HTTP_LOC_CONF_OFFSET,
553 offsetof(ngx_http_uwsgi_loc_conf_t, ssl_certificate), 550 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.ssl_certificate),
554 NULL }, 551 NULL },
555 552
556 { ngx_string("uwsgi_ssl_certificate_key"), 553 { ngx_string("uwsgi_ssl_certificate_key"),
557 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, 554 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
558 ngx_conf_set_str_slot, 555 ngx_http_set_complex_value_zero_slot,
559 NGX_HTTP_LOC_CONF_OFFSET, 556 NGX_HTTP_LOC_CONF_OFFSET,
560 offsetof(ngx_http_uwsgi_loc_conf_t, ssl_certificate_key), 557 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.ssl_certificate_key),
561 NULL }, 558 NULL },
562 559
563 { ngx_string("uwsgi_ssl_password_file"), 560 { ngx_string("uwsgi_ssl_password_file"),
564 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, 561 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
565 ngx_http_uwsgi_ssl_password_file, 562 ngx_http_uwsgi_ssl_password_file,
1507 1504
1508 conf->upstream.intercept_errors = NGX_CONF_UNSET; 1505 conf->upstream.intercept_errors = NGX_CONF_UNSET;
1509 1506
1510 #if (NGX_HTTP_SSL) 1507 #if (NGX_HTTP_SSL)
1511 conf->upstream.ssl_session_reuse = NGX_CONF_UNSET; 1508 conf->upstream.ssl_session_reuse = NGX_CONF_UNSET;
1509 conf->upstream.ssl_name = NGX_CONF_UNSET_PTR;
1512 conf->upstream.ssl_server_name = NGX_CONF_UNSET; 1510 conf->upstream.ssl_server_name = NGX_CONF_UNSET;
1513 conf->upstream.ssl_verify = NGX_CONF_UNSET; 1511 conf->upstream.ssl_verify = NGX_CONF_UNSET;
1514 conf->ssl_verify_depth = NGX_CONF_UNSET_UINT; 1512 conf->ssl_verify_depth = NGX_CONF_UNSET_UINT;
1515 conf->ssl_passwords = NGX_CONF_UNSET_PTR; 1513 conf->upstream.ssl_certificate = NGX_CONF_UNSET_PTR;
1514 conf->upstream.ssl_certificate_key = NGX_CONF_UNSET_PTR;
1515 conf->upstream.ssl_passwords = NGX_CONF_UNSET_PTR;
1516 conf->ssl_conf_commands = NGX_CONF_UNSET_PTR; 1516 conf->ssl_conf_commands = NGX_CONF_UNSET_PTR;
1517 #endif 1517 #endif
1518 1518
1519 /* "uwsgi_cyclic_temp_file" is disabled */ 1519 /* "uwsgi_cyclic_temp_file" is disabled */
1520 conf->upstream.cyclic_temp_file = 0; 1520 conf->upstream.cyclic_temp_file = 0;
1822 |NGX_SSL_TLSv1_1|NGX_SSL_TLSv1_2)); 1822 |NGX_SSL_TLSv1_1|NGX_SSL_TLSv1_2));
1823 1823
1824 ngx_conf_merge_str_value(conf->ssl_ciphers, prev->ssl_ciphers, 1824 ngx_conf_merge_str_value(conf->ssl_ciphers, prev->ssl_ciphers,
1825 "DEFAULT"); 1825 "DEFAULT");
1826 1826
1827 if (conf->upstream.ssl_name == NULL) { 1827 ngx_conf_merge_ptr_value(conf->upstream.ssl_name,
1828 conf->upstream.ssl_name = prev->upstream.ssl_name; 1828 prev->upstream.ssl_name, NULL);
1829 }
1830
1831 ngx_conf_merge_value(conf->upstream.ssl_server_name, 1829 ngx_conf_merge_value(conf->upstream.ssl_server_name,
1832 prev->upstream.ssl_server_name, 0); 1830 prev->upstream.ssl_server_name, 0);
1833 ngx_conf_merge_value(conf->upstream.ssl_verify, 1831 ngx_conf_merge_value(conf->upstream.ssl_verify,
1834 prev->upstream.ssl_verify, 0); 1832 prev->upstream.ssl_verify, 0);
1835 ngx_conf_merge_uint_value(conf->ssl_verify_depth, 1833 ngx_conf_merge_uint_value(conf->ssl_verify_depth,
1836 prev->ssl_verify_depth, 1); 1834 prev->ssl_verify_depth, 1);
1837 ngx_conf_merge_str_value(conf->ssl_trusted_certificate, 1835 ngx_conf_merge_str_value(conf->ssl_trusted_certificate,
1838 prev->ssl_trusted_certificate, ""); 1836 prev->ssl_trusted_certificate, "");
1839 ngx_conf_merge_str_value(conf->ssl_crl, prev->ssl_crl, ""); 1837 ngx_conf_merge_str_value(conf->ssl_crl, prev->ssl_crl, "");
1840 1838
1841 ngx_conf_merge_str_value(conf->ssl_certificate, 1839 ngx_conf_merge_ptr_value(conf->upstream.ssl_certificate,
1842 prev->ssl_certificate, ""); 1840 prev->upstream.ssl_certificate, NULL);
1843 ngx_conf_merge_str_value(conf->ssl_certificate_key, 1841 ngx_conf_merge_ptr_value(conf->upstream.ssl_certificate_key,
1844 prev->ssl_certificate_key, ""); 1842 prev->upstream.ssl_certificate_key, NULL);
1845 ngx_conf_merge_ptr_value(conf->ssl_passwords, prev->ssl_passwords, NULL); 1843 ngx_conf_merge_ptr_value(conf->upstream.ssl_passwords,
1844 prev->upstream.ssl_passwords, NULL);
1846 1845
1847 ngx_conf_merge_ptr_value(conf->ssl_conf_commands, 1846 ngx_conf_merge_ptr_value(conf->ssl_conf_commands,
1848 prev->ssl_conf_commands, NULL); 1847 prev->ssl_conf_commands, NULL);
1849 1848
1850 if (conf->ssl && ngx_http_uwsgi_set_ssl(cf, conf) != NGX_OK) { 1849 if (conf->ssl && ngx_http_uwsgi_set_ssl(cf, conf) != NGX_OK) {
2375 { 2374 {
2376 ngx_http_uwsgi_loc_conf_t *uwcf = conf; 2375 ngx_http_uwsgi_loc_conf_t *uwcf = conf;
2377 2376
2378 ngx_str_t *value; 2377 ngx_str_t *value;
2379 2378
2380 if (uwcf->ssl_passwords != NGX_CONF_UNSET_PTR) { 2379 if (uwcf->upstream.ssl_passwords != NGX_CONF_UNSET_PTR) {
2381 return "is duplicate"; 2380 return "is duplicate";
2382 } 2381 }
2383 2382
2384 value = cf->args->elts; 2383 value = cf->args->elts;
2385 2384
2386 uwcf->ssl_passwords = ngx_ssl_read_password_file(cf, &value[1]); 2385 uwcf->upstream.ssl_passwords = ngx_ssl_read_password_file(cf, &value[1]);
2387 2386
2388 if (uwcf->ssl_passwords == NULL) { 2387 if (uwcf->upstream.ssl_passwords == NULL) {
2389 return NGX_CONF_ERROR; 2388 return NGX_CONF_ERROR;
2390 } 2389 }
2391 2390
2392 return NGX_CONF_OK; 2391 return NGX_CONF_OK;
2393 } 2392 }
2429 } 2428 }
2430 2429
2431 cln->handler = ngx_ssl_cleanup_ctx; 2430 cln->handler = ngx_ssl_cleanup_ctx;
2432 cln->data = uwcf->upstream.ssl; 2431 cln->data = uwcf->upstream.ssl;
2433 2432
2434 if (uwcf->ssl_certificate.len) { 2433 if (uwcf->upstream.ssl_certificate) {
2435 2434
2436 if (uwcf->ssl_certificate_key.len == 0) { 2435 if (uwcf->upstream.ssl_certificate_key == NULL) {
2437 ngx_log_error(NGX_LOG_EMERG, cf->log, 0, 2436 ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
2438 "no \"uwsgi_ssl_certificate_key\" is defined " 2437 "no \"uwsgi_ssl_certificate_key\" is defined "
2439 "for certificate \"%V\"", &uwcf->ssl_certificate); 2438 "for certificate \"%V\"",
2439 &uwcf->upstream.ssl_certificate->value);
2440 return NGX_ERROR; 2440 return NGX_ERROR;
2441 } 2441 }
2442 2442
2443 if (ngx_ssl_certificate(cf, uwcf->upstream.ssl, &uwcf->ssl_certificate, 2443 if (uwcf->upstream.ssl_certificate->lengths
2444 &uwcf->ssl_certificate_key, uwcf->ssl_passwords) 2444 || uwcf->upstream.ssl_certificate_key->lengths)
2445 != NGX_OK)
2446 { 2445 {
2447 return NGX_ERROR; 2446 uwcf->upstream.ssl_passwords =
2447 ngx_ssl_preserve_passwords(cf, uwcf->upstream.ssl_passwords);
2448 if (uwcf->upstream.ssl_passwords == NULL) {
2449 return NGX_ERROR;
2450 }
2451
2452 } else {
2453 if (ngx_ssl_certificate(cf, uwcf->upstream.ssl,
2454 &uwcf->upstream.ssl_certificate->value,
2455 &uwcf->upstream.ssl_certificate_key->value,
2456 uwcf->upstream.ssl_passwords)
2457 != NGX_OK)
2458 {
2459 return NGX_ERROR;
2460 }
2448 } 2461 }
2449 } 2462 }
2450 2463
2451 if (ngx_ssl_ciphers(cf, uwcf->upstream.ssl, &uwcf->ssl_ciphers, 0) 2464 if (ngx_ssl_ciphers(cf, uwcf->upstream.ssl, &uwcf->ssl_ciphers, 0)
2452 != NGX_OK) 2465 != NGX_OK)