Получение общего имени из отличительного имени сертификата клиента в NGINX - PullRequest
2 голосов
/ 24 марта 2019

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

Я уже нашел следующий код карты для этого.

map $ssl_client_s_dn $ssl_client_s_dn_cn {
    default "";
    ~/CN=(?<CN>[^/]+) $CN;
}

Но, к сожалению, он возвращает только пустую строку для следующего $ ssl_client_s_dn: CN = testcn, O = Организация испытаний

Я проверял это и с другими DN. Но проблема всегда одна и та же.

1 Ответ

1 голос
/ 24 мая 2019

Шаблон, который вы используете, требует устаревшего DN, так как он предполагает / для разделения RDN. Итак (начиная с nginx v1.11.6) работает следующее:

map  $ssl_client_s_dn_legacy  $ssl_client_s_dn_cn {
  default "";
  ~/CN=(?<CN>[^/]+) $CN;
}

С $ ssl_client_s_dn_legacy: / O = Организация тестирования / CN = testcn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...