kubernetes OpenShift路由证书自动续订

kokeuurv  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(128)

我们有几个服务在OpenShift集群中运行。每个服务都有一个路由。
我们为每个路由创建一个SSL证书。问题在于如何管理这些路由的证书过期
一种解决此问题的方法是使用通配符域条目更新群集级证书。我们不希望这样做,因为这可能会带来安全风险。如果找不到其他解决方案,将最终使用此方法。
还有什么其他方法可以管理所有服务的这么多证书
我们如何自动更新多个证书,任何关于这方面的最佳实践都将有所帮助。

3yhwsihp

3yhwsihp1#

我们使用cert-manager来管理证书生成和续订。要让cert-manager与OpenShift路由进行互操作,您需要创建引用生成的证书的Ingress资源; OpenShift会将这些资源转换为适当的Route资源。
我最近做了一个演示,你可以找到here。查看完整的细节链接,但本质上我们创建了一个Ingress资源,如下所示:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: demo-server
  annotations:
    cert-manager.io/issuer: demo-issuer
spec:
  tls:
  - hosts:
      - demo-server.example.com
    secretName: demo-server-certificate
  rules:
  - host: demo-server.example.com
    http:
      paths:
      - backend:
          service:
            name: demo-server
            port:
              name: http
        path: /
        pathType: Prefix

Cert-manager看到cert-manager.io/issuer注解,在Secret中生成一个证书,命名为spec.tls.0.secretName,然后OpenShift生成一个嵌入证书的Route。
请注意,虽然我们在LetsEncrypt中使用cert-manager,但这不是必需的; CERT-Manager支持多个发行者。
Cert-manager将自动更新这些证书。

相关问题