问题标签 [cert-manager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1111 浏览

azure - 在 azure 上使用 cert-manager 和 istio 订购证书时出现问题

我想在运行 istio 的 kubernetes 集群中使用 cert-manager 订购证书。不幸的是,证书经理没有正确订购我的证书。在我的 cert-manager pod 的日志中,我发现这条消息一遍又一遍地发送垃圾邮件:

我将在 Azure 中运行的 Kubernetes 1.9.9 与 Istio 结合使用。我想要 istio-ingressgateway 的证书,这样我就可以通过 ingressgateway 负载均衡器使用 https 公开我的服务。我不确定为什么以及返回错误代码 404 的确切原因是什么?

我尝试按照本教程进行操作:https ://medium.com/@gregoire.waymel/istio-cert-manager-lets-encrypt-demystified-c1cbed011d67 。

这是我的网关

...根据教程,这是我的另一个网关:

这就是我的证书的样子。

有谁知道在这种情况下要查找什么或可能导致错误代码 404 的原因?

0 投票
0 回答
1808 浏览

azure - 我的域的 DNS 记录没有通过 dns-01 挑战在 azure-dns 上传播

我正在尝试为我的 istio-ingress-gateway 订购带有 cert-manager 的证书。为此,我在 AKS 上的 kubernetes 集群(1.13.7)上安装了 istio(1.2.2),包括 cert-manager。在设置集群发行者并针对我的 azure-dns 区域订购带有 dns-01 挑战的证书后,我在我的 cert-manager pod 中收到以下错误消息。此消息每十秒在日志中发送一次垃圾邮件:

我使用以下命令安装了 istio:

我也尝试了其他证书管理器版本(6 + 8),但我得到了相同的结果。单独的 cert-manager 安装给了我相同的结果。

这是我的发行人的 yaml 文件...

...对于证书:

在 azure 中,我创建了一个名为<myurl>.westeurope.cloudapp.azure.com. 然后我创建了一个指向集群 LoadBalancer 暴露的 istio-ingress-ip 的 A 记录。以下命令使 cert-manager 可以在letsencrypt 所需的dns 区域中添加TXT 条目。第一个为颁发者创建一个秘密,第二个创建一个主体以访问 dns-zone。

然后在 dns 区域中成功创建了 TXT 条目,但未创建证书,如上面的 cert-manager 日志中所示。

我使用https://digwebinterface.com来调试 dns-zone。当我使用dig TXT _acme-challenge.myurl.westeurope.cloudapp.azure.com. @mygivennameserver我能够检索 acme 令牌时。当我在没有名称服务器的情况下尝试此操作时,它不起作用。据我正确理解,这在传播完成时也应该起作用,对吗?

我读过 azure 最多需要 24 小时才能更新 dns 记录。这是否也适用于 TXT 记录?

我尝试通过以下安装将 cert-manager 启用到 dns 区域的名称服务器。除了在 cert-manager 日志中列出了其他名称服务器之外,这给了我相同的结果。安装过程中是否有错误?

运行kubectl describe challenge -n istio-system结果:

0 投票
1 回答
677 浏览

gcloud - 访问 Google Cloud DNS 跨项目

我正在尝试让项目 B 中的 cert-manager 自动设置证书,但是为了让 DNS01 挑战为 clusterIssuer 工作,我需要它来访问项目 A 的云 DNS。

我的第一个项目在 Google Cloud 中有两个单独的项目,比如项目 A,我有一个 Cloud DNS 设置,我想从项目 B 访问它。我在项目 A 中创建了一个服务帐户,并在 gcloud 中使用

然后复制服务帐户电子邮件并转到Google Cloud Console中的项目B,进入IAM并选择创建一个新成员,粘贴电子邮件并单击弹出的IAM,添加角色“DNS管理员”。有了这个,我似乎只能访问项目 B 的云 DNS,如果我尝试反向操作,所以我在项目 B 中设置了一个服务帐户,我只能得到

我尝试关注:https ://stackoverflow.com/a/35558464/10516964

有人对我如何从项目 B 访问项目 A 中的云 DNS 有任何想法吗?

编辑:解决了这个问题,我只是使用了错误的密钥文件,请参见下面的答案。

0 投票
2 回答
2825 浏览

kubernetes - 从 Helm stable/cert-manager 升级到 jetstack/cert-manager

我们有一个生产 AKS 集群,该集群stable/cert-manager安装了 helm 图表以允许使用 Let's Encrypt 证书。当前安装的版本cert-manager-v0.6.0位于kube-system命名空间中。

Let's Encrypt 将从 2019 年 11 月 1 日起停止对来自 cert-manager pre 8.0 版本的流量的支持。

我想升级,但最新可用的stable图表版本是v0.6.7. 似乎要走的路是切换到jetstack/cert-manager.

我如何最好地解决这个问题?我应该卸载当前stable/cert-manager图表并使用jetstack/cert-manager? 任何关于如何在不停机的情况下解决这个问题的资源将不胜感激。如果我可以提供更多详细信息,请告诉我。

0 投票
1 回答
419 浏览

kubernetes - 使用 wilcard 和 Cloudflare DNS 进行证书管理,停留在“OrderCreated”

我正在尝试让 cert-manager 和 letencrypt 为通配符域工作。我已将通配符 A 主机指向负载均衡器 IP (GKE)。这是秘密和发行者:

这是我的入口:

事件停留在“OrderCreated”。在检查日志时:

0 投票
2 回答
5062 浏览

kubernetes - 证书管理器让加密订单待处理

我的letsencrypt 订单一直处于待处理状态。我在我的单节点 kubernetes 平面上使用 cert-manager。我也在使用letsencrypt。

输出:

收到的事件:

应该颁发证书,但我认为它挂在我的 haproxy 中。没有错误,我不完全知道如何使用 haproxy 来暴露 acme 挑战,有人可以解释一下吗?

我的集群发行者:

0 投票
1 回答
427 浏览

kubernetes - 将 cert-manager 证书从一个集群转移到另一个集群以进行 e2e 测试

我想将我的生产 Kubernetes 集群的 letencrypt 证书传输到我正在为 GitLab CI 中的 e2e 测试启动的集群。

我的目标是避免将证书存储在 CI 中并通过环境注入它,因为这样我需要手动更新并始终将其保存在那里,而不仅仅是 CI 作业的时间。我假设我无法为 e2e 集群的域创建证书,因为生产集群一直在运行。

我正在导出入口使用的密钥,kubectl get -o yaml并将其导入到新创建的集群中kubectl apply。这适用于microk8s本地。

我的生产和 e2e 集群位于 Google Cloud 中。入口没有获得 IP 外部地址,因为他们在抱怨Issuer resource "letsencrypt-prod" not found。我需要 IP 地址来配置名称解析,以便测试指向 e2e 集群而不是生产。

我尝试添加一个

进入创建入口的命名空间和cert-manager安装的命名空间。

缺少的颁发者指的是什么以及如何使已经从生产到本地的证书转移工作。

0 投票
1 回答
810 浏览

kubernetes-helm - Helm - 无法获取 jetstack/cert-manager

从 Github获取已弃用的 cert-manager Helm 图表到 untardir 中很容易:

我一直在尝试以相同的方式从 Jetstack 获取最新的 Helm 图表:

错误:在https://charts.jetstack.io存储库中找不到图表“jetstack/cert-manager”

0 投票
2 回答
393 浏览

ssl - 未应用证书管理器的入口 TLS 路由

我在 GKE 中有一个 K8s 集群(v1.12.8-gke.10),并且有一个带有主机规则的 nginx 入口。我正在尝试使用 cert-manager 为入口路由启用 TLS。我正在使用自签名集群发行者。但是,当我通过 HTTPS 访问该站点时,我仍然获得了默认的 K8s 证书。(证书仅对以下名称有效:kubernetes、kubernetes.default、kubernetes.default.svc、kubernetes.default.svc.cluster.local)

我检查了以下内容并且工作正常:

  1. 一个名为“selfsign”的集群颁发者
  2. 由秘密“测试”支持的有效自签名证书
  3. 一个健康运行的 nginx 入口部署
  4. 负载均衡器类型的健康且正在运行的入口服务
0 投票
1 回答
1007 浏览

spring-boot - 如何在 kubernetes 上的 Spring Boot 应用程序中使用 let's encrypt ssl 密钥

我有一个在 kubernetes 上运行的 Spring Boot 应用程序,一个为反应应用程序提供服务并将请求代理到其他服务的客户端应用程序。

该客户端应用程序可通过使用 Nginx 控制器的 Ingress 获得。我有一个针对 Nginx 控制器服务的域名,并且我已经能够使用 cert-manager 从 let's encrypt 生成有效的证书和密钥,并且证书和密钥会在必要时自动更新。

到目前为止,我使用 keytool 生成的自签名证书来保护不同应用程序之间的通信(我想我仍然可以使用该工具进行内部通信),但对于客户端应用程序,我需要使用 let's encrypt 生成的密钥。

现在我的客户端应用程序不使用 ssl(在我的 bootstrap.yml 中 ssl.enable 为 false)。所以我认为 Ngix Ingress 控制器和客户端应用程序之间的通信并不安全。

在此过程中,已使用证书和密钥创建了一个 k8s 机密,所以我想我可以使用它,但最好的方法是什么?如果可能的话,我还想自动更新证书。

感谢您的建议