什么是 DNS-01 验证?
Let’s Encrypt 在给你签发 SSL 证书时,需要验证你确实是域名的所有者。
DNS-01 的验证方式就是:
在域名的 DNS 中添加一条特殊的 TXT 记录
例如:_acme-challenge.demo.com = 一串随机字符
Let’s Encrypt 会检查你域名的 DNS 记录里是不是出现了这条 TXT。
如果匹配成功 → 域名验证通过 → 给你签证书。
为什么需要用 DNS-01?
✅ 可以签发通配符证书(如 *.example.com)
只有 DNS-01 能实现,HTTP-01 和 TLS-ALPN-01 都做不到通配符证书。
✅ 不需要网站运行
即使你的网站没上线,也能通过 DNS 验证。
✅ 自动化效果最好(配合 DNS API)
可以实现证书全自动续期,不需要你手动添加 TXT。
✅ 不受端口、防火墙、CDN、Nginx 配置影响
手动 DNS-01 的流程(你会觉得麻烦)
示例流程通常是:
- acme.sh 要求你添加 TXT
- 你登陆阿里云 DNS 或 Cloudflare
- 手动添加 TXT
- 等生效
- acme.sh 再去验证
- 成功后发证书
- 再删除 TXT
所以 —— 如果手动做,会很麻烦。