无法在 Kubernetes 上完成 letsencrypt 的 HTTP 质询
Can't complete HTTP challenge for letsencrypt on Kubernetes
我有一个 k3s 集群,我正在尝试将其配置为从 let's encrypt 获取 SSL 证书。我遵循了很多指南,我认为我真的很接近管理它,但问题是 Kubernetes 中的 Challenge 对象报告了这个错误:
Waiting for HTTP-01 challenge propagation: failed to perform self check GET request 'http://devstore.XXXXXXX.com/.well-known/acme-challenge/kVVHaQaaGU7kbYqnt8v7LZGaQvWs54OHEe2WwI_MOgk': Get "http://devstore.XXXXXXX.com/.well-known/acme-challenge/kVVHaQaaGU7kbYqnt8v7LZGaQvWs54OHEe2WwI_MOgk": dial tcp: lookup devstore.XXXXXXX.com on 10.43.0.10:53: no such host
证书管理员似乎在某种程度上试图在内部解析我的 public DNS 名称,但未能成功,因此挑战无效。你能帮我解决这个问题吗,我用谷歌搜索了但找不到解决方案...
谢谢
您想要证书的域的 DNS 记录可能不存在。
如果是,并且您正在使用水平分割 DNS 配置(劫持本地网络中的 .com 域),请确保它指向您的 public ip(例如您的家庭网关)
[编辑]
此外,您必须弄清楚 LE 在网络中访问您的集群,因此将端口转发 80/443 到您集群的 IP。
你可以摆脱它,因为 k3s 在负载均衡器中默认为 cluster traffic policy
这可能是由多种不同的原因造成的。如果您发现这是一个暂时性问题(或者可能是您之前错误配置了 coredns),您可能需要仔细检查您的 coredns 配置映射(在 kube-system
命名空间中)。
例如您可以 remove/reduce 缓存,或指向不同的 DNS 名称服务器。
Here's a description 的问题,切换到 Google DNS + 缓存删除有助于解决问题。
谢谢 DarthHTTP,我终于成功了!问题是,正如我在评论中提到的,防火墙没有使用来自私有网络端的 public IP 正确路由 HTTP 请求。我解决了配置内部 DNS 服务器的问题,该服务器使用 K3S 节点的私有 IP 地址解析名称,并将该服务器用作 K3S 节点的 DNS 服务器。最终我的 HTTP 网络应用获得了一个有效的 let's encrypt 证书!
我有一个 k3s 集群,我正在尝试将其配置为从 let's encrypt 获取 SSL 证书。我遵循了很多指南,我认为我真的很接近管理它,但问题是 Kubernetes 中的 Challenge 对象报告了这个错误:
Waiting for HTTP-01 challenge propagation: failed to perform self check GET request 'http://devstore.XXXXXXX.com/.well-known/acme-challenge/kVVHaQaaGU7kbYqnt8v7LZGaQvWs54OHEe2WwI_MOgk': Get "http://devstore.XXXXXXX.com/.well-known/acme-challenge/kVVHaQaaGU7kbYqnt8v7LZGaQvWs54OHEe2WwI_MOgk": dial tcp: lookup devstore.XXXXXXX.com on 10.43.0.10:53: no such host
证书管理员似乎在某种程度上试图在内部解析我的 public DNS 名称,但未能成功,因此挑战无效。你能帮我解决这个问题吗,我用谷歌搜索了但找不到解决方案...
谢谢
您想要证书的域的 DNS 记录可能不存在。 如果是,并且您正在使用水平分割 DNS 配置(劫持本地网络中的 .com 域),请确保它指向您的 public ip(例如您的家庭网关)
[编辑]
此外,您必须弄清楚 LE 在网络中访问您的集群,因此将端口转发 80/443 到您集群的 IP。
你可以摆脱它,因为 k3s 在负载均衡器中默认为 cluster traffic policy
这可能是由多种不同的原因造成的。如果您发现这是一个暂时性问题(或者可能是您之前错误配置了 coredns),您可能需要仔细检查您的 coredns 配置映射(在 kube-system
命名空间中)。
例如您可以 remove/reduce 缓存,或指向不同的 DNS 名称服务器。
Here's a description 的问题,切换到 Google DNS + 缓存删除有助于解决问题。
谢谢 DarthHTTP,我终于成功了!问题是,正如我在评论中提到的,防火墙没有使用来自私有网络端的 public IP 正确路由 HTTP 请求。我解决了配置内部 DNS 服务器的问题,该服务器使用 K3S 节点的私有 IP 地址解析名称,并将该服务器用作 K3S 节点的 DNS 服务器。最终我的 HTTP 网络应用获得了一个有效的 let's encrypt 证书!