云原生环境中,管理  Kubernetes  Ingress  Controller 的 SSL证书是保障服务安全通信的关键。其核心在于如何将证书安全地存储、自动地签发与更新,并灵活地配置到  Ingress  资源中。

一、方案概览:云厂商与原生方案对比

下表对比了主流云厂商方案与  Kubernetes  原生方案的核心逻辑,帮助你快速选择。

方案类型   代表平台/工具     核心逻辑      适用场景

云厂商集成方案 华为云  CCE(ELB  证书) 将证书托管在云平台的负载均衡器(ELB)中,Ingress  Controller  直接引用  ELB  证书  ID,无需在集群内维护  Secret。 已深度集成该云平台,希望将证书管理外部化、利用云平台证书服务(如自动续期、合规性)的场景。

Azure  AKS(自带证书) 用户自行生成或获取  TLS  证书,创建  Kubernetes  Secret,然后在  Ingress  资源中引用该  Secret。 在云平台上运行但需要自带证书(如企业内部  CA  签发)的场景。

Kubernetes  原生方案 Cert‑Manager(Let’s  Encrypt) 通过  Kubernetes  自定义资源(Certificate、ClusterIssuer)自动从  Let’s  Encrypt  等  ACME  CA  签发、续订证书,并将证书存储为  Secret。 需要全自动证书签发与续期、希望减少手动操作的场景(尤其适合公开服务)。

通配符证书(Wildcard  TLS) 将通配符证书(如  *.example.com)创建为  Secret,并在  Ingress  Controller  启动参数中指定,后续  Ingress  资源只需匹配域名即可使用该证书。 需要为多个子域名提供  HTTPS  且希望简化证书管理的场景。

Rancher  证书管理 在  Rancher  界面中上传证书(私钥与证书内容),证书会被创建为  Secret,可在创建  Ingress  时直接选择使用。 使用  Rancher  管理  Kubernetes  集群,希望通过  UI  集中管理证书的场景。

二、核心概念与工具

在云原生证书管理中,有几个核心概念和工具需要了解:

证书载体:证书最终会被存储为  Kubernetes  Secret(类型为  kubernetes.io/tls),供  Ingress  使用。这是所有方案的基础。

自动化工具:Cert-Manager  是最流行的  Kubernetes  原生证书管理工具,它能自动处理证书的整个生命周期,包括申请、签发、续期和轮换。

证书类型:主要有两种选择:单域名证书(适用于特定域名)和通配符证书(保护主域名及其所有子域名)。通配符证书在管理多个子域名时能显著简化配置。

配置模式:根据不同的方案,证书的配置模式也有所不同。常见的模式包括在  Ingress  资源中引用  Secret、在  Controller  启动参数中指定证书,或者直接使用云平台的外部证书。

三、典型配置流程(以  Cert‑Manager  与通配符证书为例

以下是两种常见方案的配置流程:

使用  Cert‑Manager  自动签发证书

安装  Cert‑Manager:通过  Helm  安装  Cert‑Manager。

创建  ClusterIssuer:配置  ACME  颁发者(如  Let’s  Encrypt)。

创建  Certificate  资源:定义证书的域名、存储的  Secret  名称等信息,Cert‑Manager  会自动申请并更新证书。

在  Ingress  中引用:在  Ingress  的  tls.secretName  字段中引用  Cert‑Manager  创建的  Secret。

使用通配符证书

准备证书  Secret:将通配符证书和私钥创建为  Secret,例如  wildcard-tls-secret。

配置  Ingress  Controller:在启动参数中指定通配符证书的  Secret。

创建  Ingress  资源:在  Ingress  的  tls.hosts  中列出域名,无需单独指定  secretName,控制器会自动使用通配符证书。

四、最佳实践与安全考虑

证书轮换与更新:确保证书在过期前自动更新。Cert‑Manager  默认会自动续订。

私钥安全:建议开启  Kubernetes  Secret  的加密存储,或在云平台使用密钥管理服务(如  Azure  Key  Vault)。

监控与告警:使用  Prometheus  监控证书过期时间,设置告警。

证书链完整性:确保证书链完整(服务器证书  +  中间证书)。

最小权限原则:为  Cert‑Manager  设置仅限所需权限的  ServiceAccount。

最后总结一下,选择方案时,若已深度集成特定云平台,可直接使用其证书服务以简化运维。若追求自动化、避免厂商锁定,Cert‑Manager  是首选;若需为大量子域名提供  HTTPS,通配符证书  则更为合适。

若用户能分享具体的业务场景(例如是使用公有云还是自建集群,是否需要自动签发SSL证书,以及域名的大致规模),我可以为用户提供更具体的配置方案。