我正在尝试使用 cert-manager 通过 LetsEncrypt 颁发证书。
我已按照此处的步骤进行操作 http://docs.cert-manager.io/en/latest/getting-started/index.html
但是,我现有的入口没有被修改(我认为它需要修改它,因为为 .well-known/...
添加了路径。
相反,我看到为此创建了一个入口,名称如下:cm-acme-http-solver-kgpz6
?哪个比较困惑?
如果我获得了该入口的 yaml,我会看到以下规则:
spec:
rules:
- host: example.com
http:
paths:
- backend:
serviceName: cm-acme-http-solver-2dd97
servicePort: 8089
path: /.well-known/acme-challenge/2T2D_XK1-zIJJ9_f2ANlwR-AcNTm3-WenOExNpmUytY
这究竟是如何工作的?由于文档似乎相当稀疏。
最佳答案
你看到的记录是为了挑战。需要成功配置证书。如果您使用“example.com”作为域,那么它将不会成功。要使其工作,您需要为有效主机名配置 DNS 记录,以便 LetsEncrypt 可以解析域并完成检查。
通常你甚至不会看到挑战入口资源。只要 DNS 和主机名配置正确,它通常会运行质询,然后自行删除。删除后,您创建的资源将加载到您的入口 Controller 中。
有一些入口 Controller 不支持每个主机名的多个入口资源。他们将加载一个入口资源并忽略另一个,因此这是对问题的一种变通方法/修复。
关于kubernetes - cert-manager 正在使用 acme 响应器创建新的入口,而不是修改现有的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53723525/