You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s集群DNS配置异常与LetsEncrypt http-01挑战404问题求助

问题描述

我正在学习为DigitalOcean上部署了K8s集群的VPS配置DirectAdmin DNS管理,域名为example.com,当前在HTTPS配置及域名指向VPS环节遇到问题,怀疑两者存在关联,具体情况如下:

  • DNS配置:已将example.com和www的A记录指向VPS的IP(444.55.666.777),其余为邮件相关记录,但访问https://example.com仍显示DirectAdmin默认页面。
  • VPS侧:Traefik负载均衡器的外部IP为444.55.666.777,已开放80和443端口,/etc/hosts中添加了该IP与域名的映射;curl测试http://example.com可返回网站内容,但https请求提示自签名证书问题。
  • LetsEncrypt问题:ClusterIssuer在http-01挑战阶段失败,挑战日志显示返回404错误,提示授权失败。

咨询问题:

  1. 应从何处开始调试?
  2. DNS配置问题是否会导致本次LetsEncrypt http-01挑战失败?
问题解答

1. 调试步骤建议

从http-01挑战的核心流程入手,按以下顺序排查:

  • 验证外部访问挑战路径的可达性
    LetsEncrypt的http-01挑战会要求访问http://example.com/.well-known/acme-challenge/<随机字符串>,先在本地或其他外部机器执行:
    curl -v http://example.com/.well-known/acme-challenge/test-file
    
    如果返回404,说明Traefik没有正确转发挑战请求到cert-manager的临时Ingress资源。
  • 检查Traefik与cert-manager的Ingress配置
    • 确认cert-manager创建的临时Ingress资源是否存在:
      kubectl get ingress -n cert-manager
      
    • 检查Traefik的IngressClass是否被cert-manager的ClusterIssuer正确引用,确保挑战请求能被Traefik路由。
  • 排查DirectAdmin与Traefik的端口冲突
    访问https显示DirectAdmin默认页面,说明443端口的请求可能被DirectAdmin本身接管,而非转发到Traefik。检查VPS上的进程占用情况:
    netstat -tulpn | grep :443
    
    如果DirectAdmin的httpd或nginx进程占用了443,需要调整端口,让Traefik独占80/443端口,或者配置DirectAdmin反向代理到Traefik。
  • 验证DNS解析的全局一致性
    用不同地区的DNS服务器查询example.com的A记录,比如:
    dig @8.8.8.8 example.com A
    dig @1.1.1.1 example.com A
    
    确保所有查询结果都指向444.55.666.777,排除DNS缓存导致的解析不一致。

2. DNS配置是否会导致http-01挑战失败?

会。http-01挑战的核心是LetsEncrypt的验证服务器需要从公网访问你的域名对应的IP上的挑战路径,如果DNS配置存在以下问题,会直接导致挑战失败:

  • A记录未正确指向VPS的Traefik外部IP,或者存在未生效的DNS缓存,导致验证服务器访问到错误的IP;
  • 域名存在CNAME记录冲突,比如example.com被解析到其他域名,而非直接指向VPS IP;
  • 部分DNS服务器的解析结果不一致,导致验证服务器的请求无法到达你的VPS。

不过从你的描述看,curl http://example.com能返回内容,说明基础DNS解析是生效的,但仍需验证全局解析一致性,以及挑战路径是否能被外部访问。

内容的提问来源于stack exchange,提问作者furion2000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 04:25:40