Включение сквозной передачи клиентского сертификата без проверки

#kubernetes #nginx-ingress

#kubernetes #nginx-вход

Вопрос:

Я пытаюсь настроить nginx-ingress для Kubernetes, чтобы клиентский сертификат передавался серверной службе без проверки.

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

На нашем тестовом сервере все работает хорошо, где мы используем сертификаты, подписанные сертификатом CA сервера, но после настройки

 nginx.ingress.kubernetes.io/auth-tls-verify-client: "off"
  

клиентский сертификат больше не пересылается в заголовке запроса, хотя у нас все еще есть

 nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true"
  

Позволяет ли nginx-ingress даже проходить через клиентские сертификаты без проверки?

Я ожидал, что отключение auth-tls-verify-client просто остановит nginx-ingress от проверки подписи сертификата и все равно пропустит его, но вместо этого он исчез из запроса.

Ответ №1:

Могу ли я предложить рассмотреть эту проблему

При добавлении auth-tls-pass-certificate-to-upstream: true для входного ресурса сертификат клиента, переданный контроллеру входа, не пересылается в серверный модуль.

По-видимому, проблемы были

проблема в большей степени связана со стандартизацией передачи клиентских сертификатов в заголовках. Я обнаружил, что nginx передает сертификат клиента в серверный модуль в заголовке Ssl-client-certificate.

В вашем случае я бы предложил проверить все значения заголовка для сертификата и посмотреть, есть ли он под другим именем.

Кроме того, не забудьте проверить, что вы ** запускаете входной контроллер nginx с флагом enable-ssl-passthrough

Комментарии:

1. Я предлагаю вам показать большую часть решения внутри тела ответа, а не ссылаться на внешний источник