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

dehydrated定时任务报错:HTTP-01验证无效问题求助

排查Dehydrated证书续签失败(Challenge Invalid)的实用步骤

这种验证失败的问题我碰到过好多次,大概率是Let's Encrypt的服务器没法正常访问到域名所有权验证的文件,咱们从几个核心点一步步排查:

  • 先确认WELLKNOWN路径的实际配置
    先检查dehydrated的配置文件(一般是/etc/dehydrated/config,或者你自定义的配置文件)里的WELLKNOWN变量是不是真的指向/var/www/dehydrated。直接用命令快速查看:

    grep WELLKNOWN /etc/dehydrated/config
    

    如果路径不对,先修正这个变量,然后手动执行一次dehydrated测试:

    dehydrated -c
    
  • 检查Web服务器的路由映射
    Let's Encrypt会访问http://你的域名/.well-known/acme-challenge/随机字符串,所以你的Web服务器(Nginx/Apache)必须把这个路径正确映射到WELLKNOWN指向的目录:

    • 要是用Nginx,确保配置里有类似这样的location块:
      location ^~ /.well-known/acme-challenge/ {
          root /var/www/dehydrated;
          default_type text/plain;
      }
      
      配置完重启Nginx:systemctl restart nginx
    • 要是用Apache,得配置Alias或者调整DocumentRoot对应的目录权限,确保/.well-known/acme-challenge/能被正常访问,然后重启Apache:systemctl restart apache2
  • 验证文件的外部可访问性
    手动在WELLKNOWN目录创建一个测试文件:

    echo "test-content" > /var/www/dehydrated/test-file
    

    然后从外部(或者用curl模拟外部访问)打开http://你的域名/.well-known/acme-challenge/test-file,看看能不能获取到test-content。如果访问失败,可能是这几个原因:

    • 目录权限问题:给目录设置正确的权限,让Web服务器用户(比如www-data)能读取:chown -R www-data:www-data /var/www/dehydrated && chmod -R 755 /var/www/dehydrated
    • 防火墙/安全组限制:检查服务器的防火墙(iptables/ufw)或者云服务商的安全组,有没有开放80端口(HTTP验证必须走80端口)
    • CDN/反向代理干扰:如果域名用了CDN,要确保CDN没有缓存/.well-known/路径的内容,或者暂时关闭CDN,等验证通过再开启
  • 排查Cron Job的运行环境
    有时候手动运行dehydrated正常,但Cron执行失败——这是因为Cron的环境变量和用户shell不一样。可以查看Cron日志(比如/var/log/cron或者journalctl -u cron),看看有没有路径找不到、权限不足的错误。也可以把dehydrated的命令写全路径,比如/usr/bin/dehydrated -c,避免Cron找不到命令。

  • 手动触发验证测试
    强制重新生成挑战文件,手动执行一次:

    dehydrated -c --force
    

    运行时留意详细输出,看具体是哪个域名的挑战失败,再针对性排查该域名的配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:06:17