You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes部署求助:Ingress Controller适配指定CN自签名证书

问题描述

背景

  • 拥有一个.NET REST API应用,作为最终用户与MotherAPP之间的中间件
  • 向SPA应用暴露REST API供最终用户使用
  • 对外暴露2个SOAP Service以接收MotherAPP的通知
  • MotherAPP要求为这两个SOAP Service使用指定CN(通用名称为xxxxxx,不可修改)的自签名证书,实现双向通信安全

已完成部署操作

  • 创建了Deployment(当前1个副本)
  • 创建了ClusterIP Service用于集群内暴露Pod
  • 需要配置两个Ingress:一个使用域名提供商颁发的证书供API使用,另一个使用上述自签名证书供SOAP Service使用

遇到的问题

已安装Nginx Ingress Controller,但无法创建与证书CN不匹配的Ingress,Nginx返回错误:

"x509: certificate is not valid for any names, but wanted to match [host]"

后续尝试(更新)

在minikube环境中按照官方指南创建Ingress Controller和Ingress,添加以下注解试图绕过CN检查,但Ingress仍返回默认Kubernetes证书:

  • nginx.ingress.kubernetes.io/proxy-ssl-verify: "off"
  • nginx.ingress.kubernetes.io/proxy-ssl-server-name: "fe.com"
  • nginx.ingress.kubernetes.io/proxy-ssl-name: "fe.com"

解决方案与替代方案

方案1:为SOAP Service单独部署Nginx Ingress Controller实例

Nginx Ingress Controller支持多实例部署,可专为SOAP Service配置独立实例:

  1. 部署第二个Nginx Ingress Controller,通过--ingress-class参数指定唯一标识(如soap-ingress)
  2. 将自签名证书和密钥创建为Kubernetes Secret,确保Secret与该Controller的配置绑定
  3. 创建SOAP Service对应的Ingress时,添加注解kubernetes.io/ingress.class: soap-ingress,关联到专属Controller

方案2:为自签名证书添加Subject Alternative Names(SAN)

若MotherAPP允许(仅需确认是否可添加SAN,不修改指定CN),生成证书时补充与Ingress域名匹配的SAN字段,让证书同时兼容指定CN和访问域名:

# 示例命令:生成含指定CN和SAN的自签名证书
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 \
  -subj "/CN=xxxxxx" \
  -addext "subjectAltName=DNS:你的SOAP访问域名"

用生成的证书创建Secret后,关联到对应Ingress即可。

方案3:用NodePort/LoadBalancer直接暴露SOAP Service(绕过Ingress)

若Ingress证书匹配问题难以解决,可直接通过Service暴露SOAP Service:

  1. 创建NodePort或LoadBalancer类型的Service,配置端口映射
  2. 将自签名证书直接部署在.NET应用中,由应用自身处理TLS终止
  3. 提前将自签名证书导入MotherAPP的信任存储,确保双向通信信任

方案4:修改Nginx Ingress Controller全局SSL配置(仅适合测试/受控环境)

若必须复用同一个Ingress Controller,可修改其ConfigMap全局禁用证书名称验证(注意:此操作会降低安全性):

  1. 编辑Nginx Ingress Controller的ConfigMap(通常名为nginx-ingress-controller)
  2. 添加或修改配置项:
data:
  ssl-verify-client: "off"
  ssl-verify-depth: "0"
  1. 重启Ingress Controller Pod使配置生效

内容的提问来源于stack exchange,提问作者Dr.Gonzo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:25:11