下载教程博客更新日志 功能常见问题 免费下载

DNS验证SSL证书教程:TXT记录申请Let's Encrypt证书详解

DNS 验证是什么

DNS 验证(DNS-01)是 Let’s Encrypt 证明”你确实拥有这个域名”的一种方式。它的原理是:证书颁发机构(CA)生成一个随机校验值,要求你把它写到域名的 DNS 记录里,具体是一条名为 _acme-challenge.你的域名 的 TXT 记录。CA 随后查询这条记录,只要能读到匹配的校验值,就认为你拥有该域名的控制权并签发证书。验证完成后,这条 TXT 记录可以删除,因为它只在验证那一刻被读取,之后不再有用途。与 HTTP 验证相比,DNS 验证不依赖服务器上的任何文件或端口,因此适用范围更广。

适用场景

DNS 验证在以下场景几乎是必选项:

  • 80 端口不可用:服务器防火墙未放行 80 端口,或已被其他程序占用,HTTP 验证无法完成。
  • 内网/无公网服务器:证书对应的服务器不直接暴露在公网,CA 无法回连。
  • 通配符证书:申请 *.example.com 这类通配符证书时,Let’s Encrypt 只接受 DNS 验证,HTTP 验证做不到。
  • 域名解析不在同一服务器:域名由第三方解析托管,改 DNS 记录比动服务器更简单。

手动添加 TXT 记录步骤

手动验证的流程如下:

  1. 在申请工具里发起申请,工具会给出记录名称与记录值,名称形如 _acme-challenge.example.com
  2. 登录域名服务商后台,进入 DNS 解析(或记录管理)页面,新增一条 TXT 类型的记录。
  3. 将记录值完整粘贴到记录内容里,注意不要漏掉首尾或误加空格。
  4. 保存后等待解析生效。多数服务商几分钟内生效,但受 TTL 影响可能更久。
  5. 回到工具点击”继续验证”,由 CA 查询记录并完成签发。

API 自动验证

手动加记录适合一次性申请,但每次续期都要重复一遍就太繁琐了。API 自动验证的思路是:你把域名服务商的 API 密钥交给工具,工具在验证时自动创建 TXT 记录、验证完成后再自动删除。以 ToSSL 为例,它支持阿里云 DNS、DNSPod、Cloudflare 等主流解析商,密钥只保存在本机,且仅用于添加与删除 _acme-challenge 这条 TXT 记录,不会动其他解析。

解析商所需凭证所需权限
阿里云 DNSAccessKey ID 与 Secret域名解析(DNS)读写
DNSPodAPI Token(ID 与 Token)解析记录读写
CloudflareAPI Token 或 Global API KeyZone:DNS:Edit

配置好 API 后,DNS 验证就能像 HTTP 验证一样自动完成,续期也不再需要人工介入。详细的配置方式见 DNS 验证文档

验证失败排查

失败原因表现处理方向
密钥无权限/过期鉴权报错重新授权或更换密钥
记录未生效查询不到 TXT 记录等待生效或检查 TTL
记录值填错校验不匹配核对粘贴是否完整
CNAME 冲突主记录类型冲突改用子域或调整记录
触发速率限制频繁验证被拒停止重试,等待窗口

更多排查细节可参考 DNS 验证问题排查文档

DNS 验证与 HTTP 验证对比

维度DNS 验证HTTP 验证
验证方式添加 TXT 记录80 端口放验证文件
是否需要公网服务器是(需 80 端口可达)
通配符证书支持(唯一方式)不支持
自动化需解析商 API需服务器可写
生效速度受 DNS 传播影响通常更快

如果你的目标是申请通配符证书,可进一步阅读 通配符证书申请指南

需要申请免费 SSL 证书?

ToSSL 是一款免费的SSL证书申请与自动续期工具:输入域名即可申请 Let’s Encrypt 证书, 支持 HTTP / DNS 验证与通配符证书,到期前 30 天自动续期,Windows / macOS / Linux 均可使用。

免费下载 ToSSL 查看使用教程

相关阅读

泛域名SSL证书怎么申请?通配符证书完整教程

泛域名SSL证书(通配符证书)怎么申请?详解*.example.com证书的适用场景、DNS验证要求、申请步骤与部署注意事项,一张证书覆盖全部子域名。

免费SSL证书申请流程:从零到HTTPS的完整步骤

免费SSL证书申请流程详解:域名与服务器准备、选择申请方式、HTTP/DNS域名验证、证书下载安装与部署,以及续期设置,一步步教你为网站启用HTTPS。