证书申请

DNS 委派

DNS 委派用一条 CNAME 记录把 _acme-challenge 的解析交给 BeeSSL,此后该域名的签发与每 90 天一次的续期都不再需要手工添加 TXT 记录。本文说明记录的格式、一条 CNAME 为何同时覆盖主域名与泛域名、委派交出了哪些权限,以及如何撤销。

手动方式下,每次签发和每 90 天一次的续期都要在 DNS 控制台添加一条新的 TXT 记录,因为 CA 每次下发的验证值都不同。DNS 委派(也称 CNAME 委派)把 _acme-challenge.example.com 通过一条 CNAME 指向本站,此后每次验证所需的 TXT 值由本站写入。这条 CNAME 添加一次即可,之后无需再动。

与手动方式的区别

手动添加 TXTDNS 委派
首次签发添加一条或两条 TXT 记录添加一条 CNAME 记录
每次续期再次添加新的 TXT 记录无需操作
同时签发泛域名需要两条同名 TXT 记录同一条 CNAME 覆盖
记录的去留签发后可删除,续期时再加长期保留

委派只改变验证环节。签发后的下载与部署,以及续期后重新部署的要求,与手动方式相同。

开启委派

开启分三步,其中只有第二步需要离开本站:

  1. 在本站为域名开启委派。 系统为该域名生成一个随机标识,并给出需要添加的 CNAME 记录。
  2. 在域名的 DNS 控制台添加这条 CNAME 记录。 格式见下表。这一步只需做一次,此后不必再修改。
  3. 返回本站点击「检查委派」。 系统确认这条 CNAME 已生效且指向正确的目标后,委派即开启。
字段
记录类型CNAME
主机记录_acme-challenge(部分服务商要求填写完整的 _acme-challenge.example.com
记录值本站给出的目标主机名,形如 ab12cd34.acme.beessl.cn,需完整复制
TTL保持默认即可

_acme-challenge 下已经存在手动方式留下的 TXT 记录,添加 CNAME 之前必须先把它们删掉。DNS 协议规定 CNAME 不能与任何其他类型的记录同名共存(RFC 1034)。遇到这种情况,部分控制台会报错拒绝,部分会静默覆盖其中一条,两种结果都不是预期状态。这是开启委派时最容易出问题的一步。

记录生效所需的时间取决于 DNS 服务商的传播速度;若此前同名下存在 TXT 记录,还受旧记录 TTL 的影响。本站无法加速这一过程,检查未通过时稍后重试即可。

检查未通过时

先用命令行确认记录的实际状态,这可以排除本机与本地网络缓存的干扰:

# 查询 CNAME 的实际指向
dig +short CNAME _acme-challenge.example.com

# 若怀疑本地缓存干扰,直接向权威服务器查询
dig +short NS example.com
dig +short CNAME _acme-challenge.example.com @ns1.example-dns.com

预期返回本站给出的目标主机名。末尾多出的一个点是 dig 的显示习惯,不影响判断。对照返回结果:

返回内容通常原因
没有任何结果记录尚未生效,或添加在了错误的域名下
目标与本站给出的不一致记录值复制不完整,或误填了另一个域名的目标
同名下仍能查到 TXT 记录旧的 TXT 记录未删除,CNAME 未能生效
记录名变成了 _acme-challenge.example.com.example.com服务商只需填写 _acme-challenge,却填写了完整名称

一条 CNAME 同时覆盖主域名与泛域名

example.com*.example.com 在 ACME 协议中使用同一个验证名 _acme-challenge.example.com。手动方式下,这意味着要在同一个名字下添加两条值不同的 TXT 记录,也是手动验证最常见的失败原因

委派之后这个问题不再存在:CNAME 只负责把 _acme-challenge.example.com 指向本站,两个验证值都由本站写入,DNS 服务商是否支持同名多值 TXT 不再重要。因此一个域名只需要一条 CNAME,无论证书是否包含泛域名。

子域名需要各自的 CNAME

验证名随证书中的域名而定。为 www.example.com 单独签发证书时,验证名是 _acme-challenge.www.example.com,与 example.com 的委派无关,需要在本站为 www.example.com 单独开启委派,并另外添加一条 CNAME:

字段
记录类型CNAME
主机记录_acme-challenge.www
记录值本站为 www.example.com 给出的目标主机名

www.example.com 已被 *.example.com 覆盖,则无需单独签发,也就无需单独委派。单独委派的子域名计入委派数量,见数量限制

委派交出了什么

把解析指向第三方之前,应当清楚交出的范围。

委派交出的是 _acme-challenge.example.com 这一个名字的解析控制权:本站可以决定这个名字解析出什么内容。这个名字的用途只有一个——回答 CA 的 DNS-01 验证。控制它意味着能为 example.com 通过 DNS-01 验证,这正是委派要达到的效果,也是它的全部范围。

没有交出的:

  • 域名的其他任何记录。 A、AAAA、MX、www 等记录仍在原来的 DNS 服务商处,本站看不到,也改不了。
  • 域名所有权与 DNS 账号。 开启委派不需要提供 DNS 服务商的账号、API 密钥或任何凭证,本站对域名的 DNS 配置没有写入权限。
  • 收回的权利。 这条 CNAME 在自己的 DNS 控制台里,随时可以删除;删除后本站对该名字不再有任何影响,域名回到手动模式。

此外,公开 CA 签发的每一张证书都会进入证书透明度日志。以该域名名义签发过什么证书,是任何人都可以查证的。

委派之后

此后为该域名发起的申请,验证由系统自动完成,无需再添加任何记录。续期申请在到期前 30 天由系统创建后,同样自动完成验证并签发。

请长期保留这条 CNAME,不要像 TXT 记录那样在签发后删除;它一旦缺失,下一次续期就会退回手动方式。

委派改变的只有验证环节。证书签发后仍需下载与部署,续期后仍需重新部署,这一点与手动方式相同。建议同时开启证书监控,以便发现「已续期但未部署」的情况。

数量限制

免费版可以为 1 个域名开启委派,更多域名需要付费套餐。单独委派的子域名计入这一数量。当前套餐的额度可在「设置」页面查看。

撤销委派

两种方式任选其一:在本站关闭该域名的委派,或直接在 DNS 控制台删除那条 CNAME 记录。

撤销之后:

  • 已签发的证书不受影响,继续有效至原到期日。
  • 该域名回到手动模式。下一次续期时,系统会创建续期申请并通过邮件提醒添加 TXT 记录,流程与证书续期所述相同。
  • 若在本站关闭了委派,但 DNS 里的 CNAME 仍在,需要先把它删掉,否则同名之下无法添加 TXT 记录,原因见上文 CNAME 与 TXT 不能共存的说明。