将 Google 云平台 (Cloud Run) 置于 Cloud Flare 之后

将 Google 云平台 (Cloud Run) 置于 Cloud Flare 之后

我在 google cloud run 中有一个应用程序。我已连接我的域名并添加了 cname: ghs.googlehosted.com

我的 DNS 和域名服务在 cloud flare 中。

如果 SSL 是完整或完全严格,我会收到错误 525。如果 cloud flare 中的 SSL 是关闭或灵活的,我会收到ERR_TOO_MANY_REDIRECTS(我还会在日志中看到所有重定向)。

当谷歌为我的应用程序(同一域)生成证书时,是否有可能将谷歌置于 CF 后面?

谢谢

编辑 更多信息:
Google 不允许我上传自己的证书。
此外,Google 还强制我将我的应用暴露给 8080,我认为这意味着我的应用中没有 SSL。

答案1

编辑:

Cloud run 允许您使用端口 80,但这取决于容器,根据我的经验,当您使用端口 80 作为 HTTP 服务器时,GCP 会自动将其重定向到端口 443 的 HTTPS,并使用来自他们的有效 SSL 证书(HTTP 代码为 302),但是当您使用 cloud run 自定义域时,则使用 Let's encrypt 生成该证书。

此时我认为这是你的目标(根据你的第一次编辑)

如果你尝试在此处使用 Cloudflare 作为代理,则必须对无 SSL 端口 8080 的应用程序使用 Flexible,但对 HTTPS 云运行的应用程序使用 Full,因为 Flexible 需要以下内容端口以非 302 HTTP 代码进行响应,但如果您使用“完整”执行此操作,则更改可能需要长达 5 小时才能从 CloudFlare 端传播,根据

答案2

我有相同的设置(cloudflare 上的 DNS 和非 80 端口上的云运行服务)并且遇到相同的问题ERR_TOO_MANY_REDIRECTS,即当 CF 上的加密模式设置为灵活时出现错误。

我刚刚禁用了指向 GCP 的 CNAME 记录的代理(仅 DNS 模式),问题就解决了。在 CF 上禁用代理后,我不得不等待大约 10-15 分钟。

对于我的用例,不需要通过 CF 进行代理,我只需要域指向我的服务

答案3

我在 CF 上的 ssl 模式是灵活的(任何服务器都可以使用来自 CF 的 https),但在 Google Cloudrun 上只允许 https,然后我在 CF 上使用特定子域配置页面规则,现在 302 重定向问题就消失了。

页面规则将您域名的 SSL 模式设置为完整选项,然后等到 CF 更新(可能需要 1 小时)

相关内容