在线免费申请SSL证书如何做TXT解析验证
在线免费申请SSL证书如何做TXT解析验证
申请免费SSL证书时,DNS验证是三种验证方式(DNS/HTTP/HTTPS)中最稳定也最推荐的方式,不需要开放80端口,不受海外访问限制影响。但很多用户卡在TXT解析这一步——不知道在哪里添加、添加什么内容、怎么确认生效。这篇把TXT解析验证的全流程讲清楚。
为什么需要TXT解析验证
CA机构签发证书前,必须验证你对该域名的控制权。TXT记录验证是最常用的域名控制权验证方式,原理是:
- •CA给你一个随机字符串
- •你在DNS中添加一条TXT记录,值就是这个字符串
- •CA通过DNS查询你的域名TXT记录
- •如果值匹配,说明你确实控制该域名,CA签发证书
TXT验证相比HTTP验证的优势:
- •不需要开放80端口
- •不受服务器海外访问限制影响(DNS是全球解析的)
- •不影响网站正常运行
- •支持通配符证书
- •验证更稳定可靠
TXT解析验证的完整流程
第一步:提交证书申请
在 sslmianfei.com 首页输入域名,选择证书类型,提交申请后会进入验证步骤。
证书类型自动识别:
- •
example.com或www.example.com:单域名证书 - •
*.example.com:通配符证书 - •多个域名逗号分隔:多域名证书
- •有效IP地址:IP证书
第二步:选择DNS验证方式
提交申请后,在验证方式选择页面选择”DNS验证”或”TXT验证”(不同CA名称略有差异)。
页面会给出验证信息,包含两个关键字段:
- •主机记录(Host/Name):要添加的TXT记录的主机名
- •记录值(Value):TXT记录的值,是一长串随机字符串
典型示例:
主机记录:_dnsauth.example.com
记录值:202403151234567890abcdef1234567890abcdefghijklmnopqrstuvwxyz
第三步:登录DNS服务商控制台
根据你的域名DNS服务商选择对应操作:
- •阿里云DNS
- •腾讯云DNSPod
- •Cloudflare
- •华为云DNS
- •其他DNS服务商
注意:DNS解析托管在哪家,就去哪家控制台添加TXT记录。域名的注册商不一定是DNS服务商,比如域名在阿里云注册,但DNS解析托管在Cloudflare,就要去Cloudflare添加记录。
第四步:添加TXT记录
不同DNS服务商的操作步骤略有差异,下面分别说明。
阿里云DNS添加TXT记录
操作路径:阿里云控制台 → 云解析DNS → 域名解析 → 选择域名 → 添加记录
填写内容:
- •记录类型:TXT
- •主机记录:填CA给出的主机记录中去掉域名后缀的部分
- •记录值:CA给出的完整字符串(一长串)
- •解析线路:默认
- •TTL:默认(10分钟)
主机记录填写示例:
CA给出的主机记录是 _dnsauth.example.com,在阿里云控制台的主机记录框里只填 _dnsauth,不要填完整域名(系统会自动补全域名后缀)。
注意:如果CA给出的主机记录是 _dnsauth.www.example.com,主机记录填 _dnsauth.www。
腾讯云DNSPod添加TXT记录
操作路径:腾讯云控制台 → DNS解析DNSPod → 解析记录 → 添加记录
填写内容:
- •记录类型:TXT
- •主机记录:填CA给出的主机记录中去掉域名后缀的部分
- •记录值:CA给出的完整字符串(用双引号包裹更稳妥)
- •线路类型:默认
- •TTL:默认(600秒)
主机记录填写示例:
CA给出的主机记录是 _dnsauth.example.com,在DNSPod控制台的主机记录框里只填 _dnsauth。
注意:DNSPod的TXT记录值建议加双引号,如 "20240315abcdef...",避免特殊字符被解析错误。
Cloudflare添加TXT记录
操作路径:Cloudflare Dashboard → 选择域名 → DNS → Records → Add record
填写内容:
- •Type:TXT
- •Name:填CA给出的主机记录中去掉域名后缀的部分,或直接填完整主机记录
- •Content:CA给出的完整字符串
- •TTL:Auto
- •Proxy status:DNS only(必须关闭代理,灰色云朵)
主机记录填写示例:
CA给出的主机记录是 _dnsauth.example.com,Cloudflare的Name框里填 _dnsauth 即可。
关键点:Cloudflare必须关闭橙色云朵代理,改为灰色云朵(DNS only)。如果开启代理,TXT记录可能无法被CA正确查询。
华为云DNS添加TXT记录
操作路径:华为云控制台 → 云解析服务 → 公网解析 → 选择域名 → 添加记录集
填写内容:
- •记录集类型:TXT – 文本记录
- •主机记录:填CA给出的主机记录中去掉域名后缀的部分
- •记录值:CA给出的完整字符串
- •TTL:默认
第五步:等待TXT记录生效
TXT记录添加后不会立即生效,需要等待DNS全球传播。
不同TTL的生效时间:
- •TTL 600秒(10分钟):通常5-15分钟生效
- •TTL 3600秒(1小时):通常30-90分钟生效
- •TTL 86400秒(1天):可能需要几小时才全球生效
建议添加TXT记录时把TTL设置为最小值(如60秒或600秒),加快生效速度。
验证TXT记录是否生效
方法一:用dig命令(Linux/Mac)
# 查询TXT记录
dig _dnsauth.example.com TXT
# 简洁输出
dig _dnsauth.example.com TXT +short
方法二:用nslookup命令(Windows/Linux/Mac)
# 进入交互模式
nslookup
> set type=TXT
> _dnsauth.example.com
# 或直接命令行
nslookup -type=TXT _dnsauth.example.com
方法三:在线工具
使用 Google Dig 或 站长之家DNS查询 等在线工具查询TXT记录。
关键判断:
- •如果查询结果返回的TXT值和CA给出的值完全一致,说明TXT记录已生效
- •如果返回的值不一致或为空,需要继续等待或检查记录是否添加正确
第六步:触发CA验证
TXT记录生效后,回到 sslmianfei.com 的验证页面,点击”验证解析”按钮。
系统会先检查TXT记录是否正确返回,验证通过后自动触发CA签发证书。
验证结果有三种情况:
- •验证成功,证书已签发:立即可以下载证书
- •验证成功,证书审核中:CA还需要几分钟处理,稍等后重试获取证书
- •验证失败:TXT记录未生效或值不正确,检查后重试
常见问题排查
问题一:TXT记录添加后查询不到
可能原因:
- •DNS解析还没传播到位(等待时间不够)
- •主机记录填写错误(多填或少填了域名后缀)
- •记录值填写错误(少了字符或多了空格)
- •DNS服务商选错了(域名DNS实际托管在其他服务商)
排查方法:
# 查询权威DNS服务器(直接问域名DNS服务器,避免本地缓存影响)
dig @ns1.alidns.com _dnsauth.example.com TXT
dig @ns1.dnspod.net _dnsauth.example.com TXT
# 或查询8.8.8.8(Google DNS)
dig @8.8.8.8 _dnsauth.example.com TXT
如果权威DNS查询不到,说明记录添加有问题,需要重新检查DNS控制台的配置。
问题二:主机记录填错
最常见的错误:
- •在阿里云填了完整的
_dnsauth.example.com(应该只填_dnsauth) - •在Cloudflare填了
_dnsauth但选错了域名 - •通配符证书的主机记录填成了
_dnsauth.*.example.com(应该填_dnsauth)
正确规则:
- •主机记录是
_dnsauth.example.com→ 控制台填_dnsauth - •主机记录是
_dnsauth.www.example.com→ 控制台填_dnsauth.www - •通配符证书的主机记录和单域名相同,都是
_dnsauth
问题三:记录值被截断或修改
CA给出的TXT记录值是一长串随机字符串,添加时必须完整复制,不能有任何修改。
常见错误:
- •记录值前后多了空格
- •记录值中间的换行被保留了
- •复制时少了一两个字符
- •被DNS服务商自动转换为大写或小写
解决方法:
- •严格按CA给出的原值复制粘贴
- •不要手动输入,用复制粘贴
- •添加后用dig查询确认返回值和原值一致
问题四:Cloudflare代理未关闭
Cloudflare的TXT记录如果开启了橙色云朵代理,CA可能无法正确查询TXT记录。
解决方法:
- •添加TXT记录时,Proxy status必须选”DNS only”(灰色云朵)
- •即使是临时的,验证期间也必须关闭代理
- •证书签发后可以再开启代理
问题五:DNS解析服务器指向错误
域名的NS记录指向了错误的DNS服务商,导致添加的TXT记录无法被查询到。
检查方法:
# 查询域名的NS记录
dig example.com NS +short
如果NS记录指向 ns1.alidns.com,说明DNS解析在阿里云,TXT记录必须去阿里云添加。如果在DNSPod添加,是无效的。
问题六:TXT记录格式问题
部分DNS服务商对TXT记录的格式有特殊要求:
- •字符串超过255字符需要分段
- •包含特殊字符需要转义或加引号
- •部分服务商不允许下划线开头的记录
解决方法:
- •如果记录值超过255字符,DNS服务商会自动分段,无需手动处理
- •添加双引号包裹记录值
- •如果服务商不允许下划线,联系客服或更换DNS服务商
TXT验证 vs CNAME验证
部分CA使用CNAME验证而不是TXT验证。两者的操作流程类似,但有细微差异:
- •TXT验证:添加TXT记录,值是随机字符串
- •CNAME验证:添加CNAME记录,指向CA指定的域名
sslmianfei.com 使用ZeroSSL作为CA,DNS验证方式是CNAME。操作流程和TXT验证基本一致,只是记录类型选择CNAME。
CNAME验证的注意事项:
- •主机记录同样是去掉域名后缀的部分
- •记录值是CA指定的目标域名(如
xxx.zerossl.com) - •记录值末尾有没有点都可以,DNS服务商会自动处理
- •CNAME记录会覆盖同名的其他记录,不要和其他记录冲突
TXT验证成功后
证书签发成功后,TXT记录可以删除,不会影响证书的使用。
但建议:
- •如果用acme.sh自动续期,不要删除TXT记录(acme.sh会自动管理)
- •如果是手动续期,证书签发后可以删除TXT记录
- •删除TXT记录不会影响已签发的证书
证书下载和部署:
证书签发后,在sslmianfei.com下载证书文件(.crt和.key),部署到Nginx或Apache。部署完成后用 SSL证书配置检测工具 验证证书链、TLS版本和安全响应头是否配置正确。
总结
TXT解析验证的核心要点:
- •主机记录:CA给出的主机记录去掉域名后缀(如
_dnsauth.example.com→_dnsauth) - •记录值:严格按CA给出的原值复制,不能修改
- •TTL:设置为最小值(60-600秒)加快生效
- •Cloudflare:必须关闭代理(DNS only)
- •验证:用
dig _dnsauth.example.com TXT确认生效后再触发CA验证 - •删除:证书签发后TXT记录可以删除
DNS验证相比HTTP验证的优势:不受80端口限制、不受海外访问限制、支持通配符证书、更稳定可靠。如果你在申请IP证书,只能用HTTP验证,参考 IP证书申请失败原因 。