Имеется 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 видят не все переменные, и что надо сделать, чтобы увидели?