在Kubernetes环境下,使用cert-manager进行HTTPS证书的管理是一个高效且自动化的解决方案,它允许用户轻松地在Kubernetes集群中部署和维护SSL/TLS证书。此指南旨在提供一种实用的方式来配置和使用cert-manager,确保您的应用安全地通过HTTPS提供服务。
cert-manager 简介
cert-manager是一个自动化管理证书的Kubernetes工具,它可以为你的应用生成、续签和管理SSL/TLS证书。它支持多个颁发机构,包括Let's Encrypt、HashiCorp Vault、Venafi等,同时也支持自签名证书。使用cert-manager可以大大简化证书的管理过程,避免手动更新和续期证书的繁琐。
安装 cert-manager
添加 Helm 仓库:cert-manager可以通过Helm进行安装。首先,添加jetstack Helm仓库:
helm repo add jetstack https://charts.jetstack.io helm repo update
安装 cert-manager:使用Helm安装cert-manager及其CRDs(Custom Resource Definitions):
helm install \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.3.0 \ --set installCRDs=true
确保指定的版本与您的Kubernetes集群兼容。
配置证书发行人
cert-manager通过证书发行人(Issuer或ClusterIssuer)来颁发证书。Issuer作用于特定的命名空间,而ClusterIssuer在整个集群范围内有效。
创建一个Issuer或ClusterIssuer:例如,配置一个Let's Encrypt的ClusterIssuer。
apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-prod spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: your-email@example.com privateKeySecretRef: name: letsencrypt-prod solvers: - http01: ingress: class: nginx
将
your-email@example.com
替换为您的电子邮件地址。这对于Let's Encrypt的通知和证书续期很重要。
配置证书
一旦Issuer配置完成,就可以为您的服务创建证书请求了。
创建证书:为您的域创建一个证书,确保指定正确的Issuer和域名。
apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: my-website namespace: default spec: secretName: my-website-tls issuerRef: name: letsencrypt-prod kind: ClusterIssuer dnsNames: - my-website.example.com
自动化 HTTPS 配置
通过Ingress资源自动化配置HTTPS,您需要确保Ingress资源指向正确的Secret,并且cert-manager能够自动更新和应用证书。
配置Ingress:更新您的Ingress资源,使用cert-manager生成的证书:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-website annotations: cert-manager.io/cluster-issuer: "letsencrypt-prod" spec: rules: - host: my-website.example.com http: paths: - path: / pathType: Prefix backend: service: name: my-website-service port: number: 80 tls: - hosts: - my-website.example.com secretName: my-website-tls
通过遵循以上步骤,您可以在Kubernetes环境下利用cert-manager自动管理HTTPS证书,保证服务的安全和可靠性。这个过程简化了证书的申请、更新和管理工作,让开发者和运维人员可以更专注于应用的开发和维护。
云服务器/高防CDN推荐
蓝易云国内/海外高防云服务器推荐
海外免备案云服务器链接:www.tsyvps.com
蓝易云安全企业级高防CDN:www.tsycdn.com
持有增值电信营业许可证:B1-20222080【资质齐全】
蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。