Skip to content

使用华为云进行 DNS-01 挑战时,因 TXT 记录名称重复导致签发失败 (v2.1.12) #1238

@MZerg

Description

@MZerg

描述 Bug (Describe the bug)
当尝试使用华为云作为 DNS 提供商,通过 DNS-01 挑战来签发通配符证书时,流程会失败。

根本原因是 Nginx UI 在华为云 DNS 中创建的 ACME 挑战 TXT 记录名称不正确——根域名被错误地附加了两次。

例如,为 *.abc.com 申请证书时,创建的 TXT 记录名称是 _acme-challenge.abc.com.abc.com,而不是正确的 _acme-challenge.abc.com。

重现步骤 (To Reproduce)
复现此问题的步骤如下:

进入 UI 的 “证书” 页面。
点击 “证书列表”,选择签发证书或编辑原有的通配符证书。
输入一个通配符域名(例如 *.abc.com 或 *.bcd.abc.com),并选择已配置好的华为云 DNS 账户。
点击 “更新证书” 开始签发流程。
流程最终会因验证超时而失败。在此期间检查华为云 DNS 管理后台,可以看到创建了一个名称错误的 TXT 记录。

预期行为 (Expected behavior)
Nginx UI 应该在华为云 DNS 中创建名称正确的 _acme-challenge TXT 记录。

对于 *.abc.com,正确的 TXT 记录名称应为 _acme-challenge.abc.com。
对于 *.bcd.abc.com,正确的 TXT 记录名称应为 _acme-challenge.bcd.abc.com。
最终,证书应该能够成功签发。

截图 (Screenshots)

Image Image

信息 (please complete the following information):
服务器操作系统 (Server OS): Debian 12.2.0-14
服务器架构 (Server Arch): amd64
Nginx UI 版本 (Nginx UI Version): v2.1.12 (d6ecf1d)
你的浏览器 (Your Browser):Chrome

其他信息 (Additional context)
使用的 DNS 提供商是 华为云。
问题很可能源于程序向华为云 API 传递记录名称的方式发生了变化。新版本似乎是向 API 发送了一个完整的 FQDN(例如 _acme-challenge.abc.com),而华为云 API 预期只接收主机记录部分(例如 _acme-challenge),然后会自动附加根域名(abc.com),从而导致了重复。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions