如何通过Google Cloud服务将*.example.com路由至Cloud Run或虚拟机,及Cloud Run多子域名SSL配置方案咨询
如何通过Google Cloud服务将*.example.com路由至Cloud Run或虚拟机,及Cloud Run多子域名SSL配置方案咨询
嘿,我来帮你捋捋这个多子域名路由+SSL配置的问题,这在SaaS类应用里太常见了~下面分两种核心方案给你拆解,还有GoDaddy那边的配置细节:
方案一:直接用Cloud Run配置通配符域名+自动SSL
这是最直接的方案,不需要额外组件,Cloud Run现在已经支持通配符自定义域名了:
- 域名所有权验证:
- 打开GCP控制台的Cloud Run服务页面,进入「自定义域名」选项卡,点击「添加映射」。
- 输入通配符域名
*.example.com,系统会提示你验证域名所有权。选择DNS验证方式,GCP会给你一条TXT记录(比如_google-site-verification=xxxxxx)。 - 登录GoDaddy的域名管理后台,找到example.com的DNS设置,添加这条TXT记录,主机名留空或者填
@,TTL选默认即可。等个几分钟让DNS生效,回到GCP完成验证。
- 自动生成通配符SSL证书:
- 验证通过后,GCP会自动向Let's Encrypt申请通配符SSL证书,这个过程大概需要10-15分钟,证书会自动续期,不用你操心。
- 配置GoDaddy的CNAME记录:
- Cloud Run配置完成后,会给你一个目标域名(类似
your-service-xxxx-uc.a.run.app)。 - 在GoDaddy的DNS设置里,添加一条通配符CNAME记录:主机名填
*,值填Cloud Run提供的那个目标域名,TTL选默认就行。
- Cloud Run配置完成后,会给你一个目标域名(类似
这样所有*.example.com的请求就会被路由到你的Cloud Run服务,而且自带有效SSL证书。
方案二:用Cloud Load Balancer(CLB)配合Cloud Run(适合复杂场景)
如果你的需求更复杂(比如要加路由规则、流量拆分、WAF防护等),可以用CLB做一层转发:
- 创建Serverless NEG:
- 在GCP控制台的「网络服务」->「负载均衡」里,先创建一个Serverless NEG,关联你的Cloud Run服务。
- 配置HTTPS负载均衡器:
- 创建一个HTTPS类型的负载均衡器,后端选择刚才创建的Serverless NEG。
- 前端配置里,添加通配符域名
*.example.com,并选择自动管理SSL证书(GCP同样会自动申请Let's Encrypt的通配符证书)。 - 给负载均衡器分配一个静态IP地址(或者用GCP提供的转发域名)。
- GoDaddy DNS配置:
- 如果用静态IP,就添加一条通配符A记录,主机名填
*,值填静态IP;如果用转发域名,就添加CNAME记录指向该域名。
- 如果用静态IP,就添加一条通配符A记录,主机名填
这个方案灵活性更高,适合后期有扩展需求的场景。
注意事项
- 通配符证书仅匹配一级子域名,比如
store1.example.com是有效的,但a.store1.example.com这类多级子域名不会被覆盖,如果需要支持多级,得单独配置或者申请泛域名覆盖多级的证书。 - DNS生效需要时间,配置完后可以用
nslookup test.example.com来检查记录是否生效,再用浏览器访问测试SSL证书是否正常。 - 如果之前有特定子域名的DNS记录,通配符不会覆盖这些明确配置的记录,所以不用担心冲突。
备注:内容来源于stack exchange,提问作者momwhocode
相关产品推荐
相关产品推荐

