CN из $ssl_client_s_dn можно достать с помощью map, например в nginx.conf пишем:
map $ssl_client_s_dn $ssl_client_s_dn_cn {
default "";
~/CN=(?<CN>[^/]+) $CN;
}
в vhost мы можем использовать переменную $ssl_client_s_dn_cn для своих нужд, например для выставления заголовка
server {
...
proxy_set_header X-CLIENT-SSL-CN $ssl_client_s_dn_cn;
...
}
далее заголовок X-CLIENT-SSL-CN легко проверяется в самом web-приложении с нужным списком CN
Возможен и другой вариант - это написание логики проверки CN на самом nginx например с использованием njscript.