Google App Engine子域名DNS-TXT记录验证失败问题求助
Google App Engine 无协议前缀子域名TXT验证失败修复方案
针对TXT记录值完全匹配但持续验证失败、带http/https前缀的HTML文件验证可正常通过的场景,按以下优先级操作排查:
1 修正TXT记录的主机配置(最高发问题)
绝大多数此类验证失败都是DNS记录的主机名配置错误导致:
- 若待验证子域名为
measurement.mediaworx.com,不要将TXT记录添加到根域名mediaworx.com下;也不要在主机记录栏填写完整域名measurement.mediaworx.com——多数公共DNS服务商的主机记录仅需填写子域前缀measurement即可,填写完整域名会导致实际生效的记录变为measurement.mediaworx.com.mediaworx.com,此时即使Google检测到的TXT值匹配,也会因域名层级不匹配判定验证失败。 - 配置完成后通过Google公共DNS校验记录正确性,执行命令:
dig TXT measurement.mediaworx.com @8.8.8.8
检查返回结果的ANSWER SECTION区块,确认应答域名是纯measurement.mediaworx.com.(末尾的点为根域标记,属正常现象),无多余后缀,同时返回的TXT值与验证页提供的字符串完全一致,没有多余的空格、引号。
2 解决DNS冲突与缓存问题
- 检查该子域名下是否存在CNAME记录:根据DNS协议规则,若域名配置了CNAME记录,该域名下所有其他类型的记录(含TXT)都会被递归解析到CNAME目标地址,导致Google无法读取到你配置的TXT值。请临时删除CNAME记录,待TXT验证通过后,改用A记录指向App Engine官方公布的接入IP即可,避免后续冲突。
- 不要频繁点击验证按钮:Google验证节点存在缓存,每次触发验证后至少等待2小时再重试,频繁操作会延长失败状态的缓存时间。若DNS服务商支持全球节点刷新,可手动触发全节点刷新,缩短传播等待时间。
3 修复Google侧验证状态冲突
App Engine的域名所有权验证复用Google Search Console的验证数据,之前通过的带http/https前缀的验证属于URL前缀类属性,和无协议的域属性验证状态不互通:
- 登录Google Search Console,删除之前已验证通过的
http://measurement.mediaworx.com、https://measurement.mediaworx.com两个URL前缀属性 - 新建属性时选择「域名属性」类型,输入不带任何协议的纯域名
measurement.mediaworx.com,按照提示完成TXT验证 - 回到App Engine域名管理页面刷新,此时Google侧已经存在对应域名的所有权验证记录,会直接判定验证通过,无需重复校验DNS
4 兜底处理
如果以上操作全部完成后仍验证失败,直接提交Google Cloud支持工单,附上dig命令返回的解析结果截图、验证失败页面截图,说明TXT记录值已完全匹配,后台工程师可手动标记验证通过,通常1个工作日内即可处理完成。
内容的提问来源于stack exchange,提问作者Evgeniy
相关产品推荐
相关产品推荐

