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

标签 nginx kubernetes kubernetes-ingress nginx-ingress

我正在使用 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/

相关文章:

amazon-web-services - 如何在AWS EKS中一次在多个容器上执行Shell脚本

Azure aks 敏捷身份刷新凭据

NGINX错误: "Invalid port in upstream" when using proxy_pass with IPv6

apache - 特定 HTTP 重定向帮助 - "Request exceeded the limit of 10 internal redirects"

Nginx 背后的 Apache 由于 DirectorySlash 重定向而暴露自己

docker - SSL.keystore.location 在我的 Kubernetes secret 挂载中找不到 JKS 文件

kubernetes - kubectl 错误 : You must be logged in to the server (Unauthorized)

nginx - 防止NGINX移除端口

nginx - 在没有 GCP 负载均衡器的情况下创建 kubernetes nginx ingress

security - GCP 库伯内斯 : Ingress and external load balancer with IAP lots of open ports scanning nmap