从 nginx-入口上的客户端证书中提取 CN



我使用的是kubernetes/ingress nginx。任务是使用nginxingress从客户端的证书中提取CN字段。我搜索了一段时间,找到了一个解决方案:

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

但我无法将此代码用于nginxingress。这就是我目前拥有的,但它不起作用。

nginx.ingress.kubernetes.io/http-snippets: |
map  $ssl_client_s_dn  $ssl_client_s_dn_cn {
default "";
~CN=(?<CN>[^/,"]+) $CN;
}
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Remote-User $ssl_client_s_dn_cn;

可能有人面对它,知道如何正确调整,因为我没有主意
如果你知道更优雅的方法,请在这里分享你的知识
提前谢谢。

我找到了一个解决方案,希望它能帮助到某人:

nginx.ingress.kubernetes.io/http-snippet: |
map  $ssl_client_s_dn  $ssl_client_s_dn_cn {
default "";
~CN=(?<CN>[^/,"]+) $CN;
};
nginx.ingress.kubernetes.io/location-snippet: |
proxy_set_header REMOTE-USER $ssl_client_s_dn_cn;

最新更新