在 cPanel 中使用 Cloudflare 如何影响 AutoSSL
我们在之前的文章中提供了有关 Cloudflare、AutoSSL 以及利用这些服务的优势的信息。 在本文中,我们将重点解决在 cPanel/WHM 服务器上一起使用 Cloudflare 和 AutoSSL 时出现的特定问题之一。 这些服务几乎在所有环境中都能发挥出色的作用,并且可以信赖这些服务来提供它们所宣传的服务。 但是,在某些情况下,服务可能会因自身的过错而发生冲突。
什么是 Cloudflare?
Cloudflare 是一家提供 CDN(内容交付网络)、DDoS 缓解、互联网安全、分布式 DNS(域名服务器)和其他服务的互联网服务公司。 Cloudflare 服务位于用户和网站托管提供商之间,同时充当连接两者的网站的反向代理。
什么是 AutoSSL?
AutoSSL 是一种免费的替代 SSL 证书,无需购买年度 SSL 证书。 它通常是在用户管理面板中启用或禁用的帐户范围设置。 启用 AutoSSL 后,每日 cron 将使用新的 Sectigo 或 Let’s Encrypt 证书替换已过期(或即将过期)的自签名 SSL 证书。 使用 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 会根据需要自动添加/删除/修改此记录。 由于 Cloudflare 中使用的域名服务器,cPanel 无法检索所需的验证时会出现此问题,这会阻止验证过程 自动SSL 更新过程。
我如何知道我是否在使用 Cloudflare?
有两种方法我们可以很容易地使用命令行来验证我们的域是否确实在使用 Cloudflare 来处理其 DNS。
命令行
你
[email protected]:~# dig CodePre.com ; <<>> DiG 9.16.1-Ubuntu <<>> CodePre.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: ;CodePre.com. IN A ;; ANSWER SECTION: CodePre.com. 0 IN A 67.225.187.61 ns.CodePre.com. 0 IN A 69.16.222.254 ns1.CodePre.com. 0 IN A 69.16.223.254 ns.CodePre.com. 0 IN AAAA 2607:fad0:0:8917::a ns1.CodePre.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 [email protected]:~#
查询
[email protected]:~# nslookup CodePre.com Non-authoritative answer: Name: CodePre.com Address: 67.225.187.61 Name: ns.CodePre.com Address: 69.16.222.254 Name: ns1.CodePre.com Address: 69.16.223.254 Name: ns.CodePre.com Address: 2607:fad0:0:8917::a Name: ns1.CodePre.com Address: 2607:fad0:0:8927::a [email protected]:~#
内部工具
在 manage.CodePre.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 功能。
- 首先登录到您的服务器 WHM.
2.在搜索栏中输入“汽车l”,然后单击“管理 AutoSSL”
3. 这将带我们进入一个新屏幕。 在该屏幕中找到“管理用户“ 标签。
4. 在右侧找到您域的 cPanel 用户,然后单击“检查”例子“ 穿蓝色衣服。
5. 现在将为域发出 SSL。
伟大的! 我们刚刚更新了 SSL。
验证 SSL
那么,我们去哪里验证它是否真的有效? 当然,我们会检查日志!
- 回到“管理 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!
结论
WHM 提供的免费 SSL 应每 3 个月更新一次。 另一种解决方法是订购一年的付费 SSL。 如果我们选择订购 SSL 以避免每 3 个月订购一次,我们有两种选择。
- 标准 涵盖您的 domain.com 和子域的 SSL www.domain.com 50 美元/年。
- 一种 通配符 SSL。 此 SSL 将以 150 美元/年的价格覆盖您的主域和任何子域。
如果您不确定什么是最适合您的选择,请联系我们,我们将确保您获得适合您业务的最佳解决方案,您可以在本文中阅读有关订购 SSL 的更多信息。
我们能帮你什么吗?
给我们打电话 800.580.4985,或打开一个 聊天 或与我们联系,与我们知识渊博的技术人员或经验丰富的系统管理员交谈以了解更多信息。