add header и log format не видят часть переменных $ssl xx

Ilya Evseev nginx-forum на forum.nginx.org
Пн Фев 10 02:31:09 UTC 2020


Имеется Nginx:

    nginx version: nginx/1.17.8
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
    built with OpenSSL 1.1.0 (compatible; BoringSSL) (running with
BoringSSL)
    TLS SNI support enabled

В настройках указано:

    add_header  X-SSLEarly   $ssl_early_data     always;
    add_header  X-SSLSerial  $ssl_client_serial  always;
    add_header  X-SSLCipher  $ssl_cipher         always;
    add_header  X-SSLVStart  $ssl_client_v_start always;
    add_header  X-SSLProto   $ssl_protocol       always;
    add_header  X-SNIName    $ssl_server_name    always;
    add_header  X-SSLSessID  $ssl_session_id     always;

Однако заголовки ответа содержат не всё:

    x-sslcipher: TLS_CHACHA20_POLY1305_SHA256
    x-sslproto: TLSv1.3
    x-sniname: www.test.lan

Во-вторых, формат логов настроен так:

    log_format test "$ssl_protocol" "$ssl_server_name" "$ssl_early_data"
"$ssl_session_reused" "$ssl_cipher"';

В документации написано, что $ssl_early_data содержит либо 1, либо пустую
строку, однако в логи пишется "-":

   "TLSv1.3" "www.test.lan" "-" "." "TLS_CHACHA20_POLY1305_SHA256"

Хотя SSL Early Data включён и работает (проверено через sslyze, количество
воркеров специально уменьшено до одного).

Вопрос: почему add_header и log_format видят не все переменные, и что надо
сделать, чтобы увидели?

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,286982,286982#msg-286982



Подробная информация о списке рассылки nginx-ru