因此,我设置了一个 cron 任务来更新我管理的一系列域的证书。一位朋友帮忙做了这件事。
第一次运行时,它运行良好。但几个月后,为了更新证书,它失败了。
我收到“错误:挑战无效!(返回:无效)”
我知道的是,它试图查看我是否拥有该域名,因此它向地址 WELLKNOWN 变量发送挑战,该变量位于“/var/www/dehydrated”下(如果我没记错的话)。
我不知道为什么由于某些不为人知的原因,挑战无效,我希望这与 Web 服务器的配置方式无关。我正在使用 Nginx。
谢谢。
答案1
我认为你看错了方向......
质询用于检查正确的 DNS 映射,因此您必须检查与证书相关的域是否位于正确的 IP(A 或 CNAME 记录)上。
因此,以 letsencrypt 为例的挑战 (HTTP) 是尝试与在 WELLKNOWN 下运行的 *Webserver 交换信息 非变量但DNS 记录。
如果您的域名是 sub.mydomain.com,则必须将 nginx 配置为通过 DNS 协议应答 sub.mydomain.com,并且像 /var/www/dehydrated 这样的文档根目录必须可写才能完成挑战。