我正在尝试在Azure上使用Letsencrypt和cert-manager在Kubernetes上配置大使网关。
我在证书管理器日志中收到以下错误-
Error getting certificate 'ambassador-certs': secret "ambassador-
certs" not found
certificates controller: Re-queuing item "default/<certificate-name>" due
to error
processing: http-01 self check failed for domain "<certificate-name>"
如果我随后在Kubernetes中创建称为ambassador-certs的秘密,它将开始记录以下内容-
Re-queuing item "default/<certificate-name>" due to error processing:
no data for "tls.crt" in secret 'default/ambassador-certs'
我的配置如下-
Kubernetes秘密
apiVersion: v1
kind: Secret
metadata:
name: ambassador-certs
namespace: default
type: Opaque
Kubernetes证书
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
name: <name>
spec:
secretName: ambassador-certs
commonName: <domain-name>
dnsNames:
- <domain-name>
acme:
config:
- http01:
ingressClass: nginx
domains:
- <domain-name>
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
Kubernetes ClusterIssuer
apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-prod
http01: {}
我按照其网站的指示安装了大使-
kubectl apply -f
https://getambassador.io/yaml/ambassador/ambassador-rbac.yaml
当我使用Ingress Controller尝试此操作时,将成功创建证书并将其添加到机密中。请问大使我想念什么?
最后,根据大使网站,这就是我要做的全部事情
证书经理
Jetstack的证书管理器使您轻松配置和管理TLS Kubernetes上的证书不需要将> Ambassador与cert-manager一起使用。
一旦cert-manager运行,并且您成功创建了> issuer,就可以请求如下证书:
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
name: cloud-foo-com
namespace: default
spec:
secretName: ambassador-certs
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
commonName: cloud.foo.com
dnsNames:
- cloud.foo.com
acme:
config:
- dns01:
provider: clouddns
domains:
- cloud.foo.com
注意上面的secretName行。证书存储在什么时候 机密,然后重新启动大使以获取新证书。
谢谢。慢慢死在里面试图解决这个问题:-)
我删除了所有内容,并首先使用http与大使进行了重新配置。那行得通。我能够通过http浏览到我的httpbin.org路由。然后,我切换到Ambassador Service yaml上的端口443,并如上所述重新应用所有端口。
这仍被记录在cert-manager日志中
Re-queuing item "default/<certificate-name>" due to error processing: no data
for "tls.crt" in secret 'default/ambassador-certs'
kubectl描述了秘密的大使证书
Name: ambassador-certs
Namespace: default
Labels: <none>
Annotations:
Type: Opaque
Data
====
答案 0 :(得分:0)
这基本上意味着挑战失败了。