【问题标题】:Kubernetes cert-manager certificate is created but can not get vertifiedKubernetes cert-manager 证书已创建但无法验证
【发布时间】:2022-01-16 13:39:20
【问题描述】:

我正在开发一个 DO kubernetes 集群并在其上安装入口 nginx 和 argocd,一切似乎都很好,只要他们通过 http 访问服务,我就可以轻松使用入口。

我还安装了 certmanager,以下是有关我的入口、证书和颁发者的主要文件:

入口

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: rancher-demo
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
    certmanager.k8s.io/cluster-issuer: "letsencrypt-production"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  tls:
  - hosts:
      - {sub-domain}
    secretName: ssl-cert-production
  rules:
  - host: {sub-domain}
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service: 
            name: rancher-demo
            port:
              number: 80

发行人

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-production
  namespace: default
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: {my-email}
    privateKeySecretRef:
      name: letsencrypt-production
    solvers:
    - selector: {}
      http01:
        ingress:
          class: nginx

证书

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: ssl-cert-production
  namespace: default
spec:
  secretName: ssl-cert-production
  issuerRef:
    name: letsencrypt-production
    kind: ClusterIssuer
  commonName: {sub-domain}
  dnsNames:
  - {sub-domain}

我浏览了 github 上的一些其他示例和 stackoverflow 上的问题,不幸的是我不知道我做错了什么。

提前感谢您的关注

【问题讨论】:

  • 您按照cert-manager.io/docs/faq/acme中的步骤操作了吗?
  • 感谢您的评论,挑战 Waiting for HTTP-01 challenge propagation: failed to perform self check GET request ' 失败。我现在正在浏览下面的链接,看看是否可以修复它:digitalocean.com/community/tutorials/…
  • 确保 cert-manager 能够访问此端点上的 {sub-domain},以便 HTTP-01 可以进行检查。
  • 你好@MehdiAmenein,有更新吗?
  • 我真的很抱歉@kkopczak,因为没有更新帖子,我通常只有周末来做这个项目,明天会分享我的发现(如果我找到任何最终结果)也谢谢你 HarshManvar对于您的评论,在我的测试过程中会牢记这一点

标签: ssl kubernetes lets-encrypt nginx-ingress cert-manager


【解决方案1】:

我终于设法解决了这个问题,我所做的如下:

  1. 创建一个新的 kubernete 实例
  2. 手动安装 cert-manager
  3. 手动安装 ingress-nginx
  4. 创建颁发者(等待它完成)
  5. 创建部署和集群
  6. 为我的应用程序创建入口配置
  7. 创建证书(等待它完成)

我正在处理 ArgoCD,在使用 Argo 处理 CD 之前,我必须先自己进行这些设置。我没有正确阅读他们的文件是我自己的错。订单很重要,但我使用 Argo 的方式是并行提供所有内容,例如在入口启动或颁发者到位之前提供证书

对于任何对详细版本感兴趣的人,请查看我在下面创建的 github 存储库:

https://github.com/mehdiamenein/cert-manager-nginx-ingress-do

我希望这对其他人也有帮助:)

非常感谢 marcel.dempers 的精彩视频https://www.youtube.com/watch?v=hoLUigg4V18

非常感谢 @justin 和 @harsh-manvar 的 cmets

【讨论】:

  • 很高兴听到您解决了问题。
猜你喜欢
  • 1970-01-01
  • 2022-01-10
  • 2019-06-28
  • 2021-04-21
  • 2020-02-21
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
相关资源
最近更新 更多