Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从客户端提取CN';nginx入口的安全证书_Nginx_Kubernetes_Kubernetes Ingress_Nginx Ingress - Fatal编程技术网

从客户端提取CN';nginx入口的安全证书

从客户端提取CN';nginx入口的安全证书,nginx,kubernetes,kubernetes-ingress,nginx-ingress,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; } map$ssl\u client\u s\u dn$ssl\u client\u s\u dn\u cn{ 默认为“; ~CN=(?[^/,

我正在使用kubernetes/ingress nginx。 任务是使用nginx入口从客户端证书中提取CN字段。我搜索了一会儿,找到了一个解决方案:

   map  $ssl_client_s_dn  $ssl_client_s_dn_cn {
    default "";
    ~CN=(?<CN>[^/,\"]+) $CN;
  }
map$ssl\u client\u s\u dn$ssl\u client\u s\u dn\u 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.ingres.kubernetes.io/http-snippets:|
映射$ssl\u客户端\u s\u dn$ssl\u客户端\u s\u dn\u cn{
默认为“;
~CN=(?[^/,\“]+)$CN;
}
nginx.ingres.kubernetes.io/configuration-snippet:|
代理\u集\u头远程用户$ssl\u客户端\u s\u dn\u 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.ingres.kubernetes.io/http-snippet:|
映射$ssl\u客户端\u s\u dn$ssl\u客户端\u s\u dn\u cn{
默认为“;
~CN=(?[^/,\“]+)$CN;
};
nginx.ingres.kubernetes.io/location-snippet:|
代理\u集\u头远程用户$ssl\u客户端\u s\u dn\u cn;

您使用的是哪个版本的nginx?nginx版本:nginx/1.17.7感谢您在这里提出的解决方案,我运行了
nginx-ingress-1.36.3
,需要进行一些调整。
http snippet
不再有注释。我将映射模块移动到
ConfigMap
以调整我的nginx配置和现在一切正常