【问题标题】:Kuberenetes cert-manager and nginxKubernetes 证书管理器和 nginx
【发布时间】:2019-04-03 08:53:24
【问题描述】:
我正在尝试在 kubernetes 上设置 jetstack/cert-manager。这将为我的多个子域提供证书。在我需要创建 nginx.conf 文件之前,它一直运行良好。
现在发生的情况是,从 cert-manager 到 http://www.redacted.com/.well-know/challenge/xx 的所有请求都由我的应用程序 pod 处理,而不是 cert-manager pod。
有谁知道我如何保留 nginx 配置文件,但让所有 .well-known 请求由 cert-manager pod 处理?似乎如果我可以选择入口的顺序,我可以将我的应用程序入口的优先级设置为最后,以便自动创建的证书管理器入口首先运行。
非常感谢!
【问题讨论】:
标签:
kubernetes
google-kubernetes-engine
kubernetes-ingress
【解决方案1】:
尝试为您的证书管理器 pod 添加服务,然后使用 /.well-known 的 hostPath 创建和入口资源。这会将您提到的 url 上的所有请求发送到您将为 pod 创建的服务。
【解决方案2】:
所以我想通了,这当然不是 cert-manager 的问题!
我有我的根域,例如<redacted>.com 自动重定向到 www.<redacted>.com,但也试图在 <redacted>.com 以及子域生成证书。 Cert-manager 失败,因为它在重定向时无法到达根域的 .well-known/acme-challenge。
我计划解决这个问题的方法是通过 DNS 而不是 HTTP 生成根证书,这样证书对于<redacted>.com 仍然有效,我仍然可以将 http 和 https 连接转发到 www 子域。