问题标签 [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 回答
222 浏览

kubernetes - 与 istio 相结合的证书管理标准入口

目前Istio 不支持完全自动化的证书过程。标准入口确实通过 cert-manager 支持这一点。是否可以将用于认证管理的标准入口配置与用于其他东西的 istio 结合起来?这种组合的缺点是什么?

0 投票
0 回答
762 浏览

kubernetes - 如何修复“不同步入口默认/测试应用程序,因为它不包含必要的注释”

我遵循了有关在 kubernetes 上启用自动 TLS 创建的出色指南: https ://akomljen.com/get-automatic-https-with-lets-encrypt-and-kubernetes-ingress/

您使用letsencrypt针对自定义资源ClusterIssuer设置cert-manager,并在部署项目中使用注释kubernetes.io/tls-acme:“true”。

但是 cert-manager 永远不会获得证书。

我正在阅读文档和其他教程,但我似乎无法弄清楚我缺少哪些注释或哪些设置可能是错误的。我也多次重做了所有步骤,但无法正常工作。

0 投票
2 回答
3112 浏览

ssl - Kubernetes 证书管理器 GoDaddy

我正在尝试将 SSL 应用于我的 kubernetes 集群(生产和登台环境),但目前仅用于登台。我成功安装了cert-manager,由于我有5个子域,我想使用通配符,所以我想用dns01配置它。问题是,我们使用 GoDaddy 进行 DNS 管理,但 cert-manager 目前不支持(我认为)。有一个问题(https://github.com/jetstack/cert-manager/issues/1083)和一个 PR 来支持这个,但我想知道是否有解决方法可以将 godaddy 与 cert-manager 一起使用,因为在这个主题上没有很多活动吗?我想使用 ACME,所以我可以使用 let's encrypt 证书。

我对 Kubernetes 还很陌生,所以如果我错过了什么,请告诉我。

是否可以与 ACME 以外的其他类型的发行者一起使用 let's encrypt ?有没有其他方法可以让我使用 GoDaddy DNS 并使用 kubernetes 进行加密?

目前我没有任何入口,但只有 2 个面向外部的服务。一个前端和一个 API 网关作为 LoadBalancer 服务。

提前致谢!

0 投票
2 回答
4211 浏览

kubernetes - 如何使用 Terraform 在 AWS EKS 上为 kubernetes 设置 letencrypt 证书颁发者

我正在尝试在 kubernetes 集群上设置letsencrypt cert-issuer。我的地形看起来像这样:

我部署了简单的测试吊舱和服务。当我去http://<cluster-address>/apple它时,它会以apple. 所以我尝试为它创建入口:

但是,当我转到https://my.domain.alias.to.cluster.address.io/apple浏览器时,我还是会发出警告,我可以看到证书是 Kubernetes Ingress Controller Fake Certificate。

我错过了什么?我应该怎么做才能让letsencrypt在那里创建证书?

更新:

来自我的 cert-manager pod 的日志:

这就是kubectl describe certificate my.domain.alias.to.cluster.address.io返回的结果:

在入口控制器的日志中,我可以找到:

0 投票
1 回答
1518 浏览

azure - 在 AKS 上使用带有 LetsEncrypt 和多个证书的证书管理器

是否有任何在 AKS 上使用 cert-manager 和 Nginx 入口的工作示例,其中多个域已通过 LetsEncrypt 授予 SSL,然后这些 dns 名称被定向到单独的容器?

我已经设置了一个 SSL 有一段时间了,但是在添加第二个之后,一切都停止了工作。

我有几个集群需要应用它,所以我希望找到一个防弹示例。

0 投票
1 回答
4404 浏览

ssl - 未找到 Cert-manager 证书且未创建挑战

我从头到尾都关注了https://docs.cert-manager.io/en/venafi/tutorials/quick-start/index.html一切似乎都在工作,只是我没有为我的入口获取外部 IP .

尽管我能够使用 nginx 入口控制器外部 ip 并使用 dns 访问站点。当我访问 url 时,我被重定向到 https,所以我认为它工作正常。

它重定向到 https,但仍然显示“不安全”,因此他没有获得颁发的证书。

当我调试时,我得到以下信息:

入口

证书:

秘密:

命令:

因此,似乎顺序出现了问题,并且没有产生任何挑战。

这是我的 ingress.yaml 和 issuer.yaml:

任何人都知道我可以做些什么来解决这个问题或出了什么问题?Certmanager 100% 正确安装,我只是不确定入口以及顺序出了什么问题。

提前致谢!

编辑:我在 nginx-ingress-controller 中找到了这个:

它越来越多,CPU 负载始终为 0.003,cpu 图已满(其他服务几乎没有)

0 投票
2 回答
2670 浏览

ssl - 使用 cert-manager istio ingress 和 LetsEncrypt 在 kubernetes 中配置 SSL 证书

我正在尝试使用 cert-manager、istio ingress 和 LetsEncrypt 在 kubernetes 中配置 SSL 证书。我已经用 helm、cert-manager 安装了 istio,创建了 ClusterIssuer,然后我正在尝试创建一个证书。无法验证 acme 挑战,我正在尝试使用 http01 进行验证,但无法弄清楚如何为此使用 istio ingress。Istio 使用以下选项进行部署:

证书配置:

尝试这种方式时,由于某种原因,找不到 istio-ingress,但是当尝试指定 ingressClass: some-name,而不是 ingress: istio-ingress 时,我得到 404,因为 example.com/.well-known/无法达到 acme-challenge/token。如何解决?谢谢!

0 投票
1 回答
1152 浏览

kubernetes - cert-manager 发现 acme-order-url 注释设置为证书的 pod,但它不属于证书资源

我正在我的 kubernetes 集群中使用 cert-manager,以便让 let'sencrypt CA 签署的证书到我的集群内的服务应用程序。

1.创建cert-manager命名空间

2. 我已经创建了 helm 实现 CA 和证书功能所需的 CRD。

3. 在 cert-manager 命名空间上禁用资源验证

4.添加Jetstack Helm存储库并更新本地缓存

5. 我已经使用 helm 在我的 k8s 集群中安装了 cert-manager:

6. 我创建了一个 ACME 颁发者,包括http challenger provider通过对 ACME 服务器(例如 Let's Encrypt)执行质询验证来获得。

  • 在我想要获取证书的服务应用程序所在的相同命名空间(默认)中应用。
  • 这有以下描述:我们可以看到,the ACME account was registered with the ACME并且StatusTrueReady

7. 我在创建颁发者的同一命名空间中创建了证书(默认)并引用它:

  • 申请证书
  • 我执行了 kubectl describe certificate zcrm365-lets-encrypt-staging,我可以看到以下内容:

我们可以看到StatusisFalse并且证书颁发是临时的。

  • 这个证书,创建一个名为的秘密zcrm365-lets-encrypt-staging-tls,其中包含我的私钥对tls.crttls.key

8. 为我的服务应用程序创建入口

  • 应用入口
  • 我可以看到我们的入口

我的入口的详细信息如下:

当我执行所有这些操作时,我可以看到我的应用程序服务通过 kong-ingress-zcrm365入口公开,因为我的 test1kongletsencrypt.possibilit.nl 域可以访问。

但正如你所看到的,我没有获得https我的服务证书。这https是一个不安全的连接

  • 我检查了我的 cert-manager pod 的日志,我有以下内容:

我认为没有执行 http 质询过程,因为 let'sencrypt 不相信我是https://test1kongletsencrypt.possibilit.nl/index.html域的所有者。

我该如何解决这个问题才能使用letsencrypt获得TLS?我是否可能需要ingress-shim在我的 helm cert-manager 和/或中使用功能WebhookValidation


重要更新

我目前正在对我的部署使用kong-ingress-controller 之类的入口。

我在这个 gist 中安装了这种方式

但是我不确定在创建证书签名请求kong-ingress-controller时如何将我的集成到 cert-manager中。zcrm365-lets-encrypt-staging

这是我目前对我的kong资源的看法

该服务service/kong-proxy为我提供外部或公共 IP,当我创建时kong-ingress-zcrm365,此入口将采用 kong-proxy 提供的外部 IP 地址。但当然在入口中,我表示使用 nginx 而不是 kong-ingress-controller。

顺便说一句,我没有安装 nginx 入口控制器,我在这里有点困惑。

如果有人能指出我正确的地址,他们的帮助将不胜感激。

0 投票
1 回答
1042 浏览

ssl - 获得证书 tls.crt 和 tls.key,但浏览器仍然提出连接不是私有的

第 3 步,我得到了 IP 地址,如下所示。我根据这篇文章自定义了我的 DNS

分配给入口控制器的外部 IP 是所有传入流量应路由到的 IP。要启用此功能,请将其添加到您控制的 DNS 区域,例如 example.your-domain.com。

本快速入门假定您知道如何将 DNS 条目分配给 IP 地址并将这样做。

DNS zone 在此处输入图像描述

domains.google.com 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我可以$ curl -kivL -H 'Host: singh.hbot.dev' 'http://singh.hbot.dev' 这是输出kuard

继续下一步

install cert-manager

应用修改staging-issuer.yaml and production-issuer.yaml

编辑我ingress.yaml并应用它

我找到了,certificate但当我describe是!Eventsnone

然后我检查secret。文档说

完成后,cert-manager 将根据入口资源中使用的密钥创建一个包含证书详细信息的密钥。您也可以使用 describe 命令查看一些详细信息:

虽然我没有ca.crt。我决定继续前进。

更改ingress.yamlproductionapply

消除secret

查看order

解决方案: 感谢Harsh Manvar

issuer从运行中确认我的网址issuer

检查我的ingress

更改issuerprod

删除旧secret的以触发该过程。

检查新的certificate

0 投票
1 回答
1002 浏览

https - HTTPS 加密对我的域无效。我的订单证书未完成

我正在我的 kubernetes 集群中使用 cert-manager,以便让 let'sencrypt CA 签署的证书到我的集群内的服务应用程序。

我正在按所示顺序执行以下步骤。我想尽可能地提供我的过程中的最详细信息,以了解所呈现的行为。

单独安装 CustomResourceDefinition 资源

标记 cert-manager 命名空间以禁用资源验证

安装 cert-manager Helm 图表

创建我的入口

这意味着我的外部 IP 地址由 kong-proxy 提供,并且是52.166.60.158

  • 我第一次以这种方式创建了入口:
  • 应用它。
  • 我的入口正在使用 kong-ingress-controller

创建集群发行者

  • 我要创建一个ClusterIssuer,我可以创建一个 Issuer,但我从 ClusterIssuer 开始。什么是最好的选择?这取决于我们对未来的部署和需求,主要是在命名空间情况下
  • 应用它
  • 此 ClusterIssuer 已在 ACMEletsencrypt 服务器上注册

修改我之前创建的入口资源

  • 现在我已经创建了 Let's Encrypt staging ClusterIssuer,我准备修改我们在上面创建的入口资源并为 test1kongletsencrypt.possibilit.nl 路径启用 TLS 加密,添加以下内容

我将添加certmanager.k8s.io/cluster-issuer: letsencrypt-staging注释并使用使用letsencrypt-staging名为 ClusterIssuer创建的秘密letsencrypt-staging

我们的入口一直保持这种方式:

  • 应用它

这个过程在ingress上更新,创建一个ingres,命名为cm-acme-http-solver-jr4fg

cm-acme-http-solver-jr4fg入口的细节是:

  • kong-ingress-zcrm365我们资源入口的细节是:

我们可以看到我们的 ingress 即使使用了kong-ingress-controller并且letsencrypt-staging证书已经在默认命名空间中创建:

letencypt-staging 证书具有以下详细信息

我可以看到我的订单问题没有完成,只是在OrderCreated事件中创建,并且这个订单已经有 7 分钟,因为我已经创建了这个证书并且订单没有完成,因此证书没有成功签发

发生在我身上的另一件事是,letsencrypt-staging由 letsencrypt-staging集群 Issuer 及其各自的证书创建的秘密只有tls.key

据我了解,如果letsencrypt证书完成订单并颁发证书,在letsencrypt-staging秘密中我会有一个tls.crt密钥,也许我的letsencrypt-staging将是tls类型而不是不透明的?

  • 当我看到我的 cert-manager pod 的日志时,我得到以下输出,我认为 http 质询未执行:

我收到此消息No existing HTTP01 challenge solver pod found for Certificate "default/letsencrypt-staging-2613163196-0" 据此,我决定将 certmanager.k8s.io/acme-challenge-type: http01注释添加到我的kong-ingress-zcrm365入口但没有发生任何事情......我的入口已更新,但仅此而已。

所有这些过程都确认 TLS 证书未成功颁发,并且我的域 test1kongletsencrypt.possibilit.nl 配置的 HTTPS 加密未激活。

这使得我的letsencrypt-staging证书有一个Status:False,并且订单创建事件不会推进到完成发布。

如何让我的证书由letsencrypt CA签名并成功颁发并激活https加密?这些日志消息发生了什么?

我听说letsencrypt-staging环境只有测试证书,这些是一种“假证书”,也许像我的chrome/firefox浏览器这样的客户端不信任证书颁发者......

这是我无法在我的域上启用 https 加密的原因吗?在肯定的情况下,我应该从暂存环境更改为生产环境吗?

这个问题中,有些人谈到了这一点,但他们强调:

登台环境应该仅用于测试您的客户端是否正常工作并且可以生成挑战、证书

在我的情况下,仍然在暂存环境中没有生成 http 挑战。:(