#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. Я предлагаю вам показать большую часть решения внутри тела ответа, а не ссылаться на внешний источник