我正在使用 kubernetes/ingress-nginx。
任务是使用 nginx 入口从客户端的证书中提取 CN 字段。我搜索了一段时间并找到了解决方案:
map $ssl_client_s_dn $ssl_client_s_dn_cn {
default "";
~CN=(?<CN>[^/,\"]+) $CN;
}
但是我无法将此代码改编为 nginx 入口。这就是我目前拥有的,但它不起作用。
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;
关于nginx - 从 nginx-ingress 上的客户端证书中提取 CN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60888965/