【问题标题】:extract CN from client's certificate on nginx-ingress从 nginx-ingress 上的客户端证书中提取 CN
【发布时间】:2020-03-27 15:21:14
【问题描述】:

我正在使用 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?
  • nginx版本:nginx/1.17.7

标签: nginx kubernetes kubernetes-ingress nginx-ingress


【解决方案1】:

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

    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-ingress-1.36.3,我需要一些调整。 http-snippet 不再有注释。我将地图模块移动到ConfigMap 以调整我的 Nginx 配置,现在一切正常kubernetes.github.io/ingress-nginx/user-guide/…
猜你喜欢
  • 2018-09-17
  • 2020-07-24
  • 2020-08-31
  • 2017-06-08
  • 1970-01-01
  • 2014-09-19
  • 1970-01-01
  • 2020-07-19
  • 2018-06-09
相关资源
最近更新 更多