【问题标题】:Kubernetes Ingress can't find SSL secret created by CertManagerKubernetes Ingress 找不到 CertManager 创建的 SSL 密钥
【发布时间】:2022-01-11 12:57:15
【问题描述】:

我一直在尝试从 Let's Encrypt 向我的域生成 SSL 证书,但 cert-manager 创建了密钥并添加了一个随机后缀,导致 NGINX 入口控制器无法找到它:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/issuer: scaleway
    kubernetes.io/tls-acme: "true"
spec:
  rules:
    - host: <DOMAIN>
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-svc
                port:
                  number: 80

  tls:
    
  - hosts:
    - <DOMAIN>
    secretName: tls-cert

这是 NGINX 日志中的错误:

Error obtaining X.509 certificate: no object matching key "default/tls-cert" in local store

Error getting SSL certificate "default/storek8s.igesa.it": local SSL certificate default/storek8s.igesa.it was not found. Using default certificate

秘密总是这样创建的:

NAME                                     TYPE                                  DATA   AGE
...
tls-secret-fjrm5                  Opaque                                1      60m

如何禁用为 Ingress 生成的密钥添加随机后缀?有什么办法可以解决这个问题吗?

【问题讨论】:

  • 嗨@joe1531,你能从答案中回答 avinashpancham 的问题吗?你是如何安装证书管理器的?您是否编辑了values.yaml,如果是,您更改了什么?您是如何设置集群的——一些云提供商解决方案或裸机?哪一个?您使用的是哪个 Kubernetes 版本?这些信息对于复制您的问题很重要。你能运行kubectl describe secret tls-secret-fjrm5 并粘贴输出(编辑你的主要问题)吗?

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


【解决方案1】:

目前我掌握的信息太少,无法给出准确的答案。例如,您是否使用此Helm chart,您的values.yaml 包含哪些值,以及您是如何设置您的发行人的?

另外,我知道 cert-manager 创建的 tls 机密应该是 kubernetes.io/tls 而不是 Opaque 类型,就像您的情况一样。所以这里肯定有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2020-06-26
    • 2019-11-05
    • 1970-01-01
    相关资源
    最近更新 更多