问题标签 [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 投票
1 回答
6771 浏览

ssl - Cert-Manager 证书更新过程 - 它是如何执行的?

我正在使用cert-manager-v0.10.0从其掌舵图安装

我正在使用类似kong的入口控制器来管理入口操作。

所以我创建了一个ClusterIssuer资源,以便可以通过 kong-ingress 控制器从 Ingress 资源中联系它。

是这样的 ClusterIssuer

我正在使用的入口资源是这个。

您可以在这里看到,我将它指向之前创建的 ClusterIssuer,并且我将它指向 kong 作为入口控制器,根据kubernetes.io/ingress.class: "kong"其中包含的注释:

因此,当我创建上面的 Ingress 资源时,会创建secretName上面在我的 ingress 中引用的资源,并且还会创建一个具有相同名称的证书资源......即letsencrypt-prod.

它将是接收 LetsEncrypt 验证成功过程的证书资源...

我得到了 TLS 加密,这里一切正常。

但是现在,我想知道更新过程将如何。因为我现在很确定这个更新证书过程不会自动发生......

我在这里阅读了一些东西https://docs.cert-manager.io/en/latest/reference/certificates.html?highlight=renewal#certificate-duration-and-renewal-window并且该文档说有必要附加到证书资源创建(kind:Certificate)这种方式的spec.durationspec.renewBefore属性

如果我的 LetsEncrypt 颁发的证书的默认期限为 90 天,我该如何指定这些spec.durationspec.renewBefore属性?

我想解决这个问题,因为我的主要问题是我没有创建证书,它是在执行 Ingress 资源(上面引用的)时创建的。

我如何使用我正在做的这种方法来解决这里的更新过程?

更新

我是否需要创建一个特定的kind:Certificate资源,引用我从 LetsEncrypt 获得的秘密?

我的意思是,像这样的东西?

我在这里有疑问,因为目前我没有得到证书更新操作

0 投票
0 回答
156 浏览

kubernetes - 使用 Helm 无需停机升级 Kubernetes 中的 jetstack cert-manager

由于 Let's Encrypt 于 2019 年 11 月 1 日结束支持,我们需要将我们的 cert-manager (v 0.5.0) 升级到最新版本(当前为 0.10.0)。

我找到了@bzumby 关于如何升级 cert-manager 的以下答案,他在其中描述了 cert-manager 的无停机升级序列:https ://stackoverflow.com/a/57807983/12115618

从答案中,一个新的证书管理器图表安装到集群中的一个单独的命名空间,以便新的证书管理器开始同步所有已经到位的证书。

但是没有提到如何处理以前的 cert-manager 安装。

我是否正确假设在答案中描述的步骤之后需要删除旧的 cert-manager helm 图表(包括关联的命名空间)?是否需要采取任何其他措施?

谢谢

0 投票
2 回答
2881 浏览

kubernetes - 证书管理器颁发的证书读作“颁发者:cert-manager.local”而不是 Let's Encrypt 并且不起作用

当我从 Chrome 浏览我的网站时,它说证书无效,如果我检查详细信息,这就是我看到的:

我不明白出了什么问题。从 cert-manager 的输出看来一切进展顺利:

这是我的配置。

入口

发行人

证书

其他详细信息:秘密在staging命名空间中,就像在命名空间中的证书管理器之外的所有其他内容一样cert-manager。集群部署在 GKE 上。

编辑:我想知道我是否有可能在 Let's Encrypt 中达到了生产环境的限制并被阻止。是否可以在某处验证?

0 投票
1 回答
1785 浏览

kubernetes - 带有证书管理器和 Traefik 入口的 404 挑战响应

美好的一天,我是 kubernetes 的新手,并尝试设置我的第一个环境。我想遵循方案:

  • 我的组织有公共 IP (xxxx)
  • 192.168.0.10此 IP使用 win 服务器 + IIS路由到专用 LAN(即)中的服务器。在 IIS 上,我有 URL 重写模块,它充当反向代理
  • 我有 Kubernetes 集群
  • 我有一些服务部署到 k8s
  • 我想使用 SSL 从 Internet 访问此服务,从 let's encrypt 获得

我已经设置了 k8s 集群,部署了 traefik ( v1.7) 入口并配置它们以进行加密(设置http->https重定向,设置 acme 挑战)。这工作正常 - 我可以从 LAN 或 WAN 观察它,并且没有关于证书的警告 - 我看到绿色锁。现在我部署服务(在我的例子中是 graylog)。再次 - 我可以从 LAN 和 WAN 观察它,但在这种情况下,我看到有关证书的警告(它是由 颁发的TRAEFIK_DEFAULT_CERT)。看到这个后,我尝试搜索更多信息,发现我需要 cert-manager。我部署了 cert-manager,创建了让我们加密颁发者(具有 ClusterIssuer 角色),但随后我尝试颁发证书我收到以下错误(在挑战描述中找到):

我的 traefik 配置图:

我也尝试在那里使用通配符:

我的集群发行者:

还有我的测试证书:

我有通配符域的 DNS 条目并且可以 ping 它

我的证书卡在状态OrderCreated

订单卡在状态Created

最后,通过挑战:

我看到有 404 响应,但我不明白它的原因。在我的 IIS 上,我有以下重写规则:让我们加密绕过 - 所有匹配的 url 都.well-known/*重写到 kubernetes 主机。http 到 https - 所有不匹配的 url 让我们加密重定向到 https 子域重定向 - 所有子域请求都重写到 kubernetes。

在我的局域网中,我有自己的 DNS 服务器,所有域my-public-domain.com都有映射到内部地址,所以我可以将公共主机名重定向logger.my-public-domain.com (x.x.x.x)到 internal logger.my-public-domain.com (192.168.0.y)

在挑战活动期间,我在 traefik 仪表板中看到了新的后端和前端。

也许我误解了它应该如何工作,但我希望 cert-manager 使用 let's encrypt 颁发证书,我可以观察我的服务。

0 投票
2 回答
15247 浏览

ssl - 无法使用 cert-manager 获得证书

我似乎无法让 cert-manager 工作:

在日志中我看到:

我通过清单部署了 cert-manager:

https://github.com/jetstack/cert-manager/releases/download/v0.11.0/cert-manager.yaml

我的入口是:

知道有什么问题吗?干杯,

0 投票
1 回答
1359 浏览

google-kubernetes-engine - Jetstack cert-manager 和 GKE 私有集群(无法验证 ACME 帐户)

我已经在我的私有 GKE 集群中安装了 Jetstack 证书管理器。一切顺利,但我无法获得颁发的证书。我得到的错误是:

这与ClusterIssuer我部署的错误事件相对应:

警告 ErrVerifyACMEAccount 27m (x4 over 28m) cert-manager 无法验证 ACME 帐户:获取https://acme-v02.api.letsencrypt.org/directory:拨号 tcp:i/o 超时

因此,我的资源CertificateRequestCertificate资源永远处于“待定”状态。

这发生在初始集群创建期间。我对证书管理器和入口的配置如下:

我在 GKE 私有集群上,因此也无法运行 webhook 组件。该文档似乎暗示以这种方式运行是可以的,但不建议这样做。

另外,我注意到文档提到需要添加防火墙规则以允许 webhook 工作。我想知道这在这里是否也相关?上面的错误似乎表明某种网络(防火墙?)相关问题。

环境细节:: GKE(1.14.7-gke.10)Kubernetes(v1.16.2)(我认为)cert-manager(0.11.0)

安装有kubectl

我是否需要配置防火墙规则?

非常感谢,本

编辑1:

“拨号 tcp:i/o 超时”是一个红鲱鱼。仅当 DNS 需要使用我的集群进行初始化时,该错误才会持续存在。我也越来越接近结论,传播错误只是 LetsEncrypt DNS 没有看到我的域与我的 IP 地址相关联(还)。

我在这里使用 A 记录是否正确?我大约一个小时前进行了 DNS 更新 - 有什么方法可以让我看到 LetsEncrypt 的 DNS 看到的内容吗?

0 投票
1 回答
3779 浏览

ssl - 带有 Cert-Manager 的 Istio Kubernetes Ingress:版本“certmanager.k8s.io/v1alpha1”中的种类“证书”没有匹配项

我正在尝试为我的 K8s/Istio 集群配置 HTTPS。我从头开始多次逐步遵循这个官方教程,每次尝试创建证书资源时都会遇到相同的错误。

我尝试根据官方文档手动安装 cert-manager 及其 CRD ,但没有任何帮助。

找不到有关此错误的任何信息,因为它在安装开箱即用或安装 cert-manager 的 CRD 后对每个人都有效。

0 投票
0 回答
401 浏览

ssl - 没有发夹 nat 的 kubernetes 上的证书管理器

我有一个在 vmware vcloud director 上运行的裸机 kubernetes 部署,我正在努力设置 cert-manager 来管理 ssl 证书。如以下问题所述,“挑战”始终无法从集群的域名/公共 IP 进行自检,因为它无法从集群内部访问(vmware vcloud director 不支持将流量从内部服务器路由回的发夹 nat到使用边缘网关公共 IP 的内部服务器)。

https://github.com/jetstack/cert-manager/issues/863

还有一个禁用 http01 和 dns01 自检的功能请求,但尚未实现。

https://github.com/jetstack/cert-manager/issues/1292

我的问题是“是否有解决此自检请求的变通解决方案?” 我也在使用 node-port 向外部打开 nginx-ingress 服务。因此,我必须在不离开 kubernetes 集群的情况下将 www.domain.com:80 请求从 cert-manager pod 路由到 ingress-nginx pod 31080 端口。

在此处输入图像描述

最良好的问候

0 投票
1 回答
1102 浏览

kubernetes-ingress - Kubernetes 证书未为 cert-manager 创建

我无法使用 cert-manager 创建证书。

我正在关注本指南 https://docs.cert-manager.io/en/latest/getting-started/install/kubernetes.html

这有效:

但是运行测试

不产生任何东西。

有什么想法可以解决这个问题吗?

0 投票
0 回答
123 浏览

iis - 通过iis绕过ssl

再会。我将继续使用 k8s 进行实验,我再次重置它,并从白页完成所有操作:- 安装单节点 k8s,- 安装 nginx 入口控制器 - 安装 cert-manager - 创建颁发者并制作证书,中提琴 - 它是工作。我可以从 let's encrypt 获得证书

但现在我遇到了一些来自网络基础设施的麻烦。我们有公共 IP 和 dns 记录,这是一个网关,它将请求从 80 和 443 端口转发到带有 win 2016 的私有服务器私有服务器和带有 url_rewrite 模块的 iis

我有规则将传入请求重写到 k8s 机器并且证书请求成功完成,我可以通过 http 从 WAN 访问我的服务,但是如果我尝试通过 https 访问我得到 502 错误,这并不奇怪,因为我需要设置 https绑定站点,但我需要它的 ssl 证书.. 由 cert-manager 获得并存储在 k8s 集群中的证书...

所以,我的问题 - 是否可以实现这样的方案:https -> gateway -> iis -> k8s with let's encrypt certificates and if it is possible 我应该如何设置 https 绑定?