存储新私钥后,证书请求似乎被卡住



我一直在尝试在Kubernetes上推出一个环境,使用LetsEncrypt和CertManager来提供证书。

然而,无论出于何种原因,似乎都无法提供证书。我一直在走那边的台阶https://cert-manager.io/docs/faq/troubleshooting/但我陷入了"在临时秘密资源中存储新私钥"的困境;xxx"’,我找不到任何故障排除步骤来解决这个问题。

我过去几次尝试重置证书的事件列表

我的ingress.yaml看起来如下:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: myname-ingress
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
tls:
- hosts:
- app.mydomain.io
secretName: tls-secret
rules:
- host: app.mydomain.io
http:
paths:
- backend:
serviceName: mydomain-identity-v1
servicePort: 80
path: /login(/|$)(.*)
- backend:
serviceName: mydomain-account-v1
servicePort: 80
path: /account(/|$)(.*)

使用以下集群颁发者:

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: ***
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx

我按照以下指南安装了所有内容:https://learn.microsoft.com/en-us/azure/aks/ingress-static-ip#create-a-ca-集群发行商

它在我们的开发环境中运行得很好,但对于这个新环境,它似乎不想发布实际的CertificateRequest。ClusterIssuer资源显示为就绪

以前有人遇到过这种情况吗?或者知道该怎么办?到目前为止,我的搜索没有结果。

我已经在Azure AKS集群中成功地完成了此实现,您可以按照以下方式操作-

  1. 从这里安装证书管理器
  2. 然后从这个stackoverflow帖子中遵循以下步骤

制作一个clusterIssuer,也可以制作单独的issuer,一旦将主机名补丁到ingress,那么在acme质询验证之后,Jetstack将自动生成该命名空间中的tls证书

请确保将负载平衡器nginx/traefik等的IP映射到DNS/主机名

我在这个环境中使用了比在另一个环境中更新版本的证书管理器。我的kubernetes版本和证书管理器版本之间一定有一些不匹配导致了这个问题。通过恢复到相同的证书管理器版本,问题已经自行解决。

最新更新