从Cloud Run域名映射切换至Cloud Load Balancer遇SSL证书问题求助
Cloud Run切换到GCLB时的DNS与SSL证书问题解决方案
核心问题:SSL证书FAILED_NOT_VISIBLE的原因
你的证书一直卡在PROVISIONING且域名状态显示FAILED_NOT_VISIBLE,本质是域名DNS同时解析到Cloud Run的IP和负载均衡器(GCLB)的IP。证书颁发机构(如Let's Encrypt)验证域名所有权时,要求域名所有解析记录必须唯一指向GCLB的IP,否则会判定验证失败。
1. 是否需要删除原有Cloud Run的A/AAAA记录?
必须删除。只要保留任何一条Cloud Run的A或AAAA记录,证书验证就无法通过,状态会一直卡在PROVISIONING。只有当域名DNS解析完全指向GCLB的IP后,证书机构才能完成验证,顺利颁发证书。
2. 能否通过子域名实现无停机切换?
完全可以,这是最稳妥的无停机切换方案:
- 先给GCLB绑定一个测试子域名(比如
test.yourdomain.com),只配置该子域名的A记录指向GCLB的IP,确保没有其他关联DNS记录。 - 等子域名的SSL证书成功颁发、GCLB与Cloud Run的集成验证通过后,再逐步迁移主域名:
- 删除主域名原有的Cloud Run A/AAAA记录
- 添加主域名的A记录指向GCLB的IP
- 确认主域名证书颁发成功后,完成全量切换
这种方式既能提前验证GCLB配置是否正常,又能保证主域名全程无停机。
3. 官方要求DNS不能解析到GCLB以外的IP,是否必须删除原有记录?
是的,这是证书验证的硬性规则。证书机构需要确认你完全控制该域名,且域名流量只会流向GCLB,所以必须确保所有DNS解析记录(A/AAAA)都只指向GCLB的IP,不能同时存在Cloud Run的IP记录。
4. GCLB只要求创建A记录,AAAA记录该怎么处理?
- 如果你的用户有IPv6访问需求,可以添加AAAA记录指向GCLB的IPv6地址(前提是GCLB已配置IPv6前端)。
- 如果没有IPv6需求,只配置A记录即可。
- 关键注意:不管是否配置AAAA记录,必须删除所有原有的Cloud Run A/AAAA记录,否则证书验证仍会失败。
内容的提问来源于stack exchange,提问作者James Daly
相关产品推荐
相关产品推荐

