You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP App Engine使用Certbot申请通配符SSL证书提示挑战失败

通配符SSL证书签发TXT记录缺失问题解决方案

前置检查

  • 确认已安装Certbot的Google DNS插件,未安装可执行对应系统的安装命令:
    • Debian/Ubuntu 系:sudo apt install python3-certbot-dns-google
    • RHEL/CentOS 系:sudo yum install python3-certbot-dns-google

1. 校验服务账号密钥与权限

  • 传入--dns-google-credentials参数的密钥路径必须为绝对路径,sudo环境下相对路径会因工作目录变化无法识别
  • 确认服务账号的DNS Administrator角色已绑定到example.com DNS区域所属的GCP项目,无上层组织/文件夹的IAM限制阻止记录写入
  • 可手动测试权限有效性:运行以下命令替换对应参数,确认可正常创建测试TXT记录,测试完成后删除即可
    gcloud dns record-sets create _acme-challenge.example.com. --type=TXT --ttl=300 --rrdatas="test" --zone=你的Cloud DNS区域名称 --iam-account=你的服务账号邮箱
    

2. 调整DNS传播等待时长

GCP Cloud DNS的全球传播通常需要60秒以上,默认的插件等待时间不足会导致校验时记录未同步完成,执行命令时增加--dns-google-propagation-seconds参数设置等待时长为120秒,参考命令:

sudo certbot certonly --dns-google --dns-google-credentials /绝对路径/到/你的/密钥.json -d *.example.com --dns-google-propagation-seconds 120

如果仍报错可将该值调整为300秒重试。

3. 校验域名NS记录配置

运行nslookup -type=NS example.com查询公网返回的NS服务器地址,确认和你Cloud DNS区域详情页给出的NS地址完全一致,若不一致需要先到域名注册商后台修改NS记录为Cloud DNS的地址,等待NS记录生效后再重试证书申请。

可选优化

如果需要证书同时覆盖根域名example.com,可以在命令中追加-d example.com参数,实现一张证书同时支持根域名和所有通配子域名:

sudo certbot certonly --dns-google --dns-google-credentials /绝对路径/到/你的/密钥.json -d *.example.com -d example.com --dns-google-propagation-seconds 120

内容的提问来源于stack exchange,提问作者Max van der Weide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:15:02