KONG / NGINX передает информацию о сертификате APACHE

У нас есть установка со шлюзом Kong API (который запускает NGINX в фоновом режиме), где один из вышестоящих - это сервер Apache, на котором мы хотим выполнить проверку сертификата клиента.

Я запускаю свои тесты с curl , где я запрашиваю kong (nginx), и он пересылает запрос в apache. Я использую curl --cert cert.crt --key key.key "https://kongurl.com/blabla"

На стороне nginx я установил собственный журнал, чтобы проверить, (по крайней мере, серийный номер) приближается, и я его вижу:

log_format combined_sslclient '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$ssl_client_s_dn($ssl_client_serial)"';
access_log log/access.log combined_sslclient;

Затем я вижу это в log / access.log :

123.123.123.123 - - [01/Oct/2020:15:52:33 +0200] "GET /my/custom/path HTTP/1.1" 204 0 "-" "curl/7.68.0" "CN=CERT_CN,OU=CERT_OU,O=CERT_O,C=CERT_C(CERT_SERIAL_NUMBER)"

Затем на NGINX у меня тоже есть эти свойства ssl:

server {
...
proxy_set_header X-SSL-CERT $ssl_client_serial;
ssl_verify_client on;
...
}

Затем на стороне apache я настраиваю модуль судебной экспертизы для чтения всех заголовков входящих запросов, и я могу видеть только другие данные ... а не X-SSL-CERT. Вот протокол судебной экспертизы на стороне apache:

+289:5f75df21:1|GET /my/custom/path HTTP/1.1|Host:mykonghost%3a8412|Connection:keep-alive|X-Forwarded-For:10.1.1.1|X-Forwarded-Proto:https|X-Forwarded-Host:mykonghost|X-Forwarded-Port:8443|X-Real-IP:10.1.1.1|User-Agent:curl/7.68.0|Accept:*/*|X-Consumer-ID:d853e4d0-f8f1-4dcf-8fa7-58d3b2c67ee0|X-Consumer-Username:anonymous|X-Consumer-Custom-ID:nil|X-Anonymous-Consumer:true
-289:5f75df21:1

Итак, как вы можете видеть ... проходят некоторые другие заголовки, но не информация о сертификате.

Я уже пытался отправить разные ssl-переменные nginx и пока не повезло ... что-то, чего мне не хватает?

Обновление:

Похоже, проблема даже не в переменной сертификата ... Я изменил nginx на:

proxy_set_header HTTP_X_TESTING 'bar';

И я все еще не могу см. его на стороне apache

0
задан 1 October 2020 в 17:30
1 ответ

Мне удалось это исправить, поместив proxy_set_header внутрь блока location{}, а не server{}. .

0
ответ дан 9 October 2020 в 10:51

Теги

Похожие вопросы