问题描述
在使用Kubernetes集群等编排平台时,想要了解有哪些值得信任的提供商可以提供通配符证书,并且了解相关的成本情况。目前,用户使用certbot和nginx来创建受信任的网页。最近,他尝试将这些镜像迁移到Google Cloud Platform上的Kubernetes集群。他找到了一个配置SSL负载均衡器的指南。尝试之后,发现有多个文本框可以插入密钥、证书和链。他曾尝试查看Google是否也提供通配符证书,但没有找到相关信息。去年Certbot宣布将支持通配符证书,但实际情况似乎并非如此。初步判断是在Google负载均衡器中使用Certbot可能不可行,或者会变得繁琐,因为证书每三个月需要更新一次。他在搜索“cheap wildcard ssl”时看到了很多结果。问题在于这些提供商中哪些可以被视为安全,成本如何,以及你使用的是哪些提供商以及原因?
解决方案
请注意以下操作可能受版本差异影响,如有需要,请做好版本匹配和备份。
使用Ingress和Cert-Manager
您可以考虑使用Kubernetes的Ingress和Cert-Manager来管理证书和SSL配置。以下是相关步骤:
-
Ingress配置:Kubernetes Ingress可以配置负载均衡器。您可以参考Google Cloud Platform的文档链接以配置Ingress。
-
Cert-Manager:使用Cert-Manager可以从Let’s Encrypt获取证书(类似于Certbot的功能),它会自动处理续订。您可以在GitHub仓库中找到Cert-Manager。
以下是在Kubernetes中使用Ingress和Cert-Manager的基本步骤:
- 在Kubernetes集群中安装和配置Cert-Manager。
- 创建一个Ingress对象,配置域名和路径规则,同时指定需要使用的证书。
- 配置Cert-Manager发行者(Issuer)和证书,以及与域名的关联。
示例Ingress和Cert-Manager配置
以下是一个示例Ingress配置,同时使用Cert-Manager获取证书:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: app-ingress
annotations:
kubernetes.io/tls-acme: "true" # 启用Cert-Manager自动获取证书
kubernetes.io/ingress.class: "gce" # 使用GCE Ingress Controller
spec:
backend:
serviceName: backend-service
servicePort: 80
tls: # 配置证书
- hosts:
- example.com
- api.example.com
secretName: app-ingress-tls
rules:
- host: example.com
http:
paths:
- path: /*
backend:
serviceName: backend-service
servicePort: 443
- host: api.example.com
http:
paths:
- path: /*
backend:
serviceName: backend-service
servicePort: 443
请注意,上面的配置示例中,您需要将backend-service
替换为实际的后端服务名称,并将example.com
替换为您的域名。此配置将创建一个Ingress,同时使用Cert-Manager自动获取证书,并将其保存在名为app-ingress-tls
的Secret中。证书续订将由Cert-Manager自动处理。
其他提供商和注意事项
目前,让我们来看一下使用Let’s Encrypt的其他方法:
-
kube-lego: 您可以使用kube-lego来自动管理证书。您可以根据kube-lego示例配置,并在Ingress中指定
kubernetes.io/tls-acme: "true"
来启用自动证书获取。 -
域名购买和DNS设置: 在使用Let’s Encrypt之前,您需要购买一个域名并将其指向Kubernetes集群的IP地址。确保将域名的DNS记录配置正确,以便验证和获取证书。
-
证书续订: 让’s Encrypt颁发的证书通常有效期为90天。通过使用自动化工具,如Cert-Manager,您可以实现证书的自动续订,无需手动干预。
总之,Ingress和Cert-Manager是在Kubernetes中管理证书的常用方式之一。此外,对于域名购买、DNS设置以及证书续订等方面也需要特别注意。根据您的实际需求,您可以选择适合您场景的解决方案。
上述解决方案可能会受到版本和环境的影响,建议您根据实际情况进行调整和测试。在进行任何更改之前,务必备份您的数据和配置。
如果您对不同提供商的证书、配置和成本有更多疑问,可以深入研究每个提供商的文档和用户反馈,以选择最适合您需求的解决方案。