LetsEncrypt 验证 .well-known/acme-challenge 时出错

您好,
我在服务器上安装了 Discourse 论坛,其 live 域名为 mydomain.com
我已将 mydomain.com 域名添加到拥有 cPanel 的服务器上,以便使用电子邮件服务。
我通过 CloudFlare 连接了该域名,并且在几个月前一切运行正常。
还为该域名安装了 SSL 证书。

我将论坛从旧服务器迁移到了另一台服务器,以便更改位置,并且论坛在一周前恢复备份后运行正常,另一台服务器的邮件服务也能正常发送和接收。我只是将 Cloudflare 和 cPanel 中的 A 记录更改为主域名和主机名服务器,并使用新的 IP 地址。

cPanel 服务器上的 SSL 证书续订时间快到了,但每次服务器尝试自动续订 SSL 证书时,我都会收到这封邮件:

DNS DCV: No local authority: “mydomain.com”; HTTP DCV: The system queried for a temporary file at “https://mydomain.com/.well-known/acme-challenge/2JFFJN7I43FE00GR8G9WUMJZ95NV2_9O”, which was redirected from “http://mydomain.com/.well-known/ acme-challenge/2JFFJN7I43FE00GR8G9WUMJZ95NV2_9O". The web server responded with the following error: 404 (Not Found). A DNS (Domain Name System) or web server misconfiguration may exist. The domain “mydomain.com” resolved to an IP address “Server IP” that does not exist on this server.

在浏览以下链接时:
http://mydomain.com/.well-known/acme-challenge/2JFFJN7I43FE00GR8G9WUMJZ95NV2_9O
我看到了带有基本工具的网站的 404 错误页面。

任何建议都将不胜感激。

这与 Discourse 有关吗?

2 个赞

我完全同意。
问题在于 cpanel 服务器无法续订 SSL 证书,因为 A 记录解析到安装了 Discourse 的主域服务器。
Discourse 直接安装在域上,而不是子域上。

更具体地说,问题与 DNS 配置有关。如果我将主域名的 A 记录指向 cPanel 服务器而不是 Discourse 服务器,它将立即成功安装 SSL 证书。
但这并非一个可行的解决方案,因为它会导致 Discourse 停止运行,直到 A 记录再次更改回来,此外,我需要每 3 个月手动更改一次,以便在 cPanel 服务器上续订 SSL 证书,这样我才能实现邮件加密。

如果是标准安装,它应该可以工作。无法猜测这是否与 cpanel、cloudflare 或 cpanel 控制的任何东西有关。

“`https://… ,它已从 http://… 重定向”

在 Cloudflare 中关闭 http 到 https 的重定向,或在 Cloudflare 中关闭代理并将其设置为仅 DNS。

2 个赞

感谢您的回复
我已经尝试过了。
但出于同样的原因,仍然无法颁发 SSL 证书。
我已经禁用了所有内容的代理,并禁用了强制重定向到 HTTPS。
我怀疑在安装 discourse 的主服务器上安装了一个 discourse 的 SSL 证书,并且该证书不是 Cloudflare 的安全证书,我的意思是存在两个 SSL 证书。