我是这个话题的新手。我们使用 GCP(App Engine,标准)来托管一个 nodejs 应用程序。然而,出于不同的原因,我们决定创建两个服务——stage和default(认为是同一个应用程序并行运行)。
默认一个与自定义域(GAE 提供的 SSL 证书)连接并正常工作。可以使用 google 生成的 URL (stage-dot-example.appspot.com) 访问舞台服务,并且显然受到 ssl 证书的保护。
然后,我们必须通过合作伙伴的安全审查,我们为此使用了阶段。
结果是我们必须禁用 TLSv1.0 和 TLSv1.1。使用 GAE - 我们需要创建负载均衡器并将 SSL 策略切换到特定于 TLS 的策略。
问题:要创建外部 HTTPS 负载平衡器 - 您必须创建 SSL 证书资源(即您必须拥有域)。使用自定义域,我想这应该不难,但我该如何为舞台做到这一点?我是否在 SSL 证书资源中使用我的阶段域 (...appspot.com)?如果是这样 - 我如何处理 DNS 记录和外部 IP(您需要将 IP 切换到 A 和 AAAA 记录中的外部 IP)?
或者如果我做错了什么 - 你能指出我正确的方向吗?
更新 + 更新 2
我决定走 Wojtek_B 提出的路径。所以我验证了 stage.example.com,它在没有负载均衡器的情况下运行良好。
那时,我的 DNS 记录包括来自 @ 的 4 条 A 和 4 条 AAAA 记录,带有 google 提供的 IP,以及 3 条 CNAME 记录(www、stage、www.stage)指向“ghs.googlehosted.com”。
接下来,我创建了具有 4 个域的 SSL 证书资源:example.com、www.example.com、stage.example.com、www.stage.example.com。
然后我添加了一个外部 HTTPS 负载均衡器(使用外部 IP,例如,1.2.3.4 和上面提到的 SSL 证书)。
我为@、www、stage 和www.stage 添加了新的A 记录以指向1.2.3.4。我已经删除了 CNAME 记录,因为它们过多。
等待 2-3 小时(TTL 为 1/2 小时)后,所有子域都被激活,除了 example.com(卡在 FAILED_NOT_VISIBLE 中)。
回答
一段时间以来,我一直在与托管 SSL 证书陷入供应状态作斗争。我遵循本教程,您应该只创建外部 IP (v4)。但我也有 4 条 AAAA 记录(在域验证期间获得)(显然)ipv6。所以我尝试保留外部 IP (v6),不到一分钟就将所有 4 个(子)域推送到活动状态。
在短短几分钟内,通过 LB 的两个服务都启动并运行所需的 TLS 配置。