如何修复 cPanel 中的 DNS DCV 错误

在 cPanel 中使用 Cloudflare 如何影响 AutoSSL

我们在之前的文章中提供了有关 Cloudflare、AutoSSL 以及利用这些服务的优势的信息。 在本文中,我们将重点解决在 cPanel/WHM 服务器上同时使用 Cloudflare 和 AutoSSL 时出现的特定问题之一。 这些服但是,在某些情况下,服务可能会因自身的过错而发生冲突。

什么是 Cloudflare?

Cloudflare 是一家互联网服务公司,提供 CDN(内容分发网络)、DDoS 缓解、互联网安全、分布式 DNS(域名服务器)和其他服务。 Cloudflare 服务位于用户和网站托管提供商之间,同时充当连接两者的网站的反向代理。

什么是 AutoSSL?

AutoSSL 是一种免费的替代 SSL 证书,无需购买年度 SSL 证书。 它通常是在用户管理面板中启用或禁用的帐户范围设置。 启用 AutoSSL 后,每日 cron 会将已过期(或即将过期)的自签名 SSL 证书替换为新的 Sectigo 或 Let’s Encrypt 证书。 使用 AutoSSL,本地网站会自动使用免费的域验证 SSL 证书进行保护。 cPanel 的 AutoSSL 使用 Sectigo 提供程序模块和 Let’s Encrypt™ 插件,可以下载。

错误是什么样的?

在 WHM 中使用 AutoSSL 并且 AutoSSL 尝试自动更新 SSL 时,如果域被配置为使用 Cloudflare,则可能会出现如下错误。 (这是可以看到错误的日志文件的一部分。)

12:44:11 PM ERROR Local DNS DCV error (example.com): The DNS query to “_cpanel-dcv-test-record.example.com” for the DCV challenge returned no “TXT” record that matches the value “_cpanel-dcv-test-record=g5EgawFWDq0V8PTUN5gspeRpOP_ckd2vcyofocOtXIRr9WcAiqj5qQfWYvaBE8fo”. ERROR Local DNS DCV error (www.example.com): The DNS query to “_cpanel-dcv-test-record.example.com” for the DCV challenge returned no “TXT” record that matches the value “_cpanel-dcv-test-record=g5EgawFWDq0V8PTUN5gspeRpOP_ckd2vcyofocOtXIRr9WcAiqj5qQfWYvaBE8fo”. Local DNS DCV OK: *.example.com (via example.com) Analyzing “example.com”’s DCV results …12:44:11 PM ERROR Impediment: NO_UNSECURED_DOMAIN_PASSED_DCV: Every unsecured domain failed DCV.

为什么会发生此错误?

DNS 验证的主要方法使用 HTTP。 尽管如此,cPanel 还是采取了额外的步骤并使用了额外的本地 DNS 域控制验证 (或 DCV)过程来验证和证明域对证书颁发机构有效。

作为 DCV 过程的一部分,DNS 记录会自动添加到 cPanel 和 WHM 服务器上域的区域文件中。 cPanel/WHM 会根据需要自动添加/删除/修改此记录。 当 cPanel 由于 Cloudflare 使用的域名服务器无法检索所需的验证时会出现此问题,这会阻止验证过程在 “自动 SSL” 更新过程。

我如何知道我是否在使用 Cloudflare?

我们可以使用 2 种方法轻松地使用命令行来验证我们的域是否确实在使用 Cloudflare 来处理其 DNS。

命令行

root@host:~# dig BYNSS.com

; <<>> DiG 9.16.1-Ubuntu <<>> BYNSS.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53640
;; flags: qr rd ad; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;BYNSS.com.                 IN      A

;; ANSWER SECTION:
BYNSS.com.          0       IN      A       67.225.187.61
ns.BYNSS.com.       0       IN      A       69.16.222.254
ns1.BYNSS.com.      0       IN      A       69.16.223.254
ns.BYNSS.com.       0       IN      AAAA    2607:fad0:0:8917::a
ns1.BYNSS.com.      0       IN      AAAA    2607:fad0:0:8927::a

;; Query time: 40 msec
;; SERVER: 192.168.238.49#53(192.168.238.49)
;; WHEN: Fri Nov 20 08:45:21 EST 2020
;; MSG SIZE  rcvd: 214

root@host:~#

查找

root@host:~# nslookup BYNSS.com
Non-authoritative answer:
Name:   BYNSS.com
Address: 67.225.187.61
Name:   ns.BYNSS.com
Address: 69.16.222.254
Name:   ns1.BYNSS.com
Address: 69.16.223.254
Name:   ns.BYNSS.com
Address: 2607:fad0:0:8917::a
Name:   ns1.BYNSS.com
Address: 2607:fad0:0:8927::a
root@host:~#

内部工具

在 manage.BYNSS.com 中,我们可以在我们的帐户上设置 Cloudflare。 我们关于 Cloudflare 的知识库文章概述了该过程。

外部工具

我们还可以使用以下第三方工具:

使用 ICANN 工具时,输入您的域名并单击查找按钮。 结果将类似于下图。 红色框出的区域是我们最感兴趣的。

在这种情况下,具体的记录类型:

  • 姓名: example.com
  • 类型: 域名服务器
  • 数据: gabe.ns.cloudflare.com & ivy.ns.cloudflare.com

Name 表示我们在搜索栏中输入的域的实际名称。

Type 是我们要查找的记录类型。

数据将是名称服务器的名称。 Cloudflare 通常使用以下格式:

任何使用 Cloudflare 的域都将具有如下 NS 记录:

  • xxxx.ns.cloudflare.com
  • xxxx.ns.cloudflare.com

验证名称服务器信息

要验证我们的域是否使用 Cloudflare,我们需要检查名称服务器是否指向 Cloudflare。

回到 WHM-Cpanel 和 AutoSSL,如果您尝试在域中更新 SSL 并注意到如下错误:

12:44:11 PM ERROR Local DNS DCV error (example.com): The DNS query to “_cpanel-dcv-test-record.example.com” for the DCV challenge returned no “TXT” record that matches the value “_cpanel-dcv-test-record=g5EgawFWDq0V8PTUN5gspeRpOP_ckd2vcyofocOtXIRr9WcAiqj5qQfWYvaBE8fo”. ERROR Local DNS DCV error (www.example.com): The DNS query to “_cpanel-dcv-test-record.example.com” for the DCV challenge returned no “TXT” record that matches the value “_cpanel-dcv-test-record=g5EgawFWDq0V8PTUN5gspeRpOP_ckd2vcyofocOtXIRr9WcAiqj5qQfWYvaBE8fo”.
 Local DNS DCV OK: *.example.com (via example.com)
 Analyzing “example.com”’s DCV results …
 12:44:11 PM ERROR Impediment: NO_UNSECURED_DOMAIN_PASSED_DCV: Every unsecured domain failed DCV.

这意味着 AutoSSL 试图更新它,但由于 CloudFlare 代理(隐藏),服务器和任何正在发出的请求之间的连接。 AutoSSL 无法获取它临时放置在服务器上的一些文本文件,以测试它是否实际托管在服务器上。

如何解决错误

我们有几种选择来解决这个问题。

  • 我们可以购买独立的 SSL 证书
  • 我们可以在没有 AutoSSL 的情况下使用 Cloudflare 的 SSL 选项
  • 我们可以在没有 Cloudflare 的情况下使用 cPanel SSL 选项
  • 我们可以暂时暂停 Cloudflare,然后更新 AutoSSL 证书

在这种情况下,我们选择选项 4。 解决这个问题非常简单。

步骤 1.暂停 Cloudflare

我们首先登录 cloudflare.com 仪表板 控制域的 DNS 并暂停 Cloudflare 片刻。

在左上角,转到“概述。” 然后找到“高级选项”部分,然后在右下角单击“在站点上暂停 Cloudflare。

步骤 2. 运行 AutoSSL

完成此操作后,我们可以重新运行 AutoSSL 以颁发证书。 这将确保我们的域通过域控制验证。

在 WHM-Cpanel 中使用 AutoSSL

在讨论这个主题时,我们将演示如何在 WHM 中使用 AutoSSL 功能。

  1. 首先登录到您的服务器 WHM.

2. 在搜索栏中输入“自动l”,然后点击“管理 AutoSSL

3. 这将带我们进入一个新屏幕。 在该屏幕中找到“管理用户“ 标签。

4. 在右侧找到您域的 cPanel 用户,然后单击“检查”example“ 穿蓝色衣服。

5. 它现在将为域发布 SSL。

伟大的! 我们刚刚更新了 SSL。

验证 SSL

那么,我们去哪里验证它是否真的有效呢? 我们当然会检查日志!

  1. 回到“管理 AutoSSL” WHM 中的选项。

2. 点击 “日志”标签在中间。

3. 点击“刷新” 所以你可以看到最新的日志。

4. 单击可用的最新日志。

5. 点击“查看日志”,查看您选择的日志。

日志的输出通常很长,但它会在日志的最底部显示类似于以下条目的条目。

The certificate is available. The system will now attempt to install it.
12:49:02 PM SUCCESS The certificate is now installed!
cf-dashboard3

结论

WHM 的免费 SSL 应每 3 个月更新一次。 另一种解决方法是订购一年的付费 SSL。 如果我们选择订购 SSL 以避免每 3 个月执行一次,我们有 2 个选项。

  • 标准 涵盖您的 domain.com 和子域的 SSL www.domain.com 50 美元/年。
  • 一种 通配符 SSL。 此 SSL 将覆盖您的主域和任何子域,费用为 150 美元/年。

如果您不确定什么是最适合您的选择,请联系我们,我们将确保您获得适合您业务的最佳解决方案,您可以在本文中阅读有关订购 SSL 的更多信息。

我们能帮你什么吗?

给我们打电话 800.580.4985,或打开 聊天 或与我们联系,与我们的一位知识渊博的技术人员或经验丰富的系统管理员交谈以了解更多信息。