【发布时间】: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