基于 cert-manager 实现证书证书自动化管理
Cert-Manager 概述 cert-manager 是 Kubernetes 的原生证书管理器(CRD 控制器),它能够为 Kubernetes 或 OpenShift 集群中的工作负载创建 TLS 证书,并在证书到期前自动续订证书。 它的作用是监控 Kubernetes 中的 Certificate 资源,自动向配置的证书颁发者(Issuer)申请证书,获取到证书后生成包含私钥和证书的 Kubernetes Secret(signed keypair),该 Secret 由应用程序 Pod 挂载或由 Ingress 控制器使用。 而使用 csi-driver、csi-driver-spiffe 或 istio-csr 时,私钥会在应用程序启动前按需生成;私钥永远不会离开节点,也不会存储在 Kubernetes Secret 中。 cert-manager 可以从各种证书颁发机构获取证书,包括: Let’s Encrypt、HashiCorp Vault、 Venafi 和私有 PKI(私有证书颁发机构,自签名证书)。 参考文档 官网:https://cert-manager.io 官方文档:https://cert-manager.io/docs/ github:https://github.com/cert-manager/cert-manager Cert-Manager 架构 Issuers(证书颁发者)图中展示了 cert-manager 配置的多个 Issuer 或 ClusterIssuer,这些是不同的证书来源: letsencrypt-prod:Let’s Encrypt 生产环境,用于颁发真实可信的公网证书。 letsencrypt-staging:Let’s Encrypt 测试环境,用于开发测试,避免触发频率限制。 hashicorp-vault:HashiCorp Vault 的证书颁发功能(通常通过 Vault 的 PKI secrets engine)。 cyberark-saas:CyberArk 的云托管证书服务(Conjur 或 CyberArk Trust Protection)。 cyberark-self-hosted:自托管的 CyberArk 证书颁发服务。 这些 Issuer 都指向同一个 cert-manager,意思是 cert-manager 可以根据不同的需求选择不同的后端来签发证书。 Certificates(证书资源)这是 Kubernetes 中的 cert-manager 自定义资源(Certificate CR),代表你想要申请的证书。图中举了两个例子: ...