【发布时间】:2020-12-15 15:59:15
【问题描述】:
我去年购买了带有 Google Domains 的自定义域 mydomain.com。直到本周早些时候,我还在那个域(在云存储桶中)上托管了一个小型单页 React 应用程序,它连接到 GAE Flask 应用程序后端。没有在任何地方使用 SSL。一切都很好。
我现在希望使用 SSL。由于我对所有这些东西都不熟悉,因此我使用Google-managed SSL certs 将文档跟踪到map my custom domain 和secure it with SSL。在此过程中,我在 GCP 中创建了我的第一个负载均衡器,然后将我的域的 @ A 和 www A 的 DNS 条目更新为 LB 的 IP。指南没有说任何关于更改 @ AAAA 条目的内容,所以我将它们留在原处。云 CDN 已禁用。谷歌域名 DNS 设置:
在创建 Google 管理的 SSL 证书时,我同时输入了 mydomain.com 和 www.mydomain.com,因为我希望这两个地址都使用 SSL 进行保护。几个小时后,www.mydomain.com 的域状态变为活动状态,但 mydomain.com 的状态为 FAILED_NOT_VISIBLE。猜这是我问题的根源吗? Google SSL 证书状态:
Troubleshooting tips for this error:
- SSL 证书未附加到负载平衡器的目标代理。要解决此问题,请更新负载平衡器配置。 完成,并通过 GCP 用户界面和 gcloud cli 确认。
- 域的 DNS 记录无法解析为 Google Cloud 负载平衡器的 IP 地址。要解决此问题,请更新 DNS 记录以指向负载平衡器的 IP 地址。 我也这样做了,请参阅下面的 GAE 自定义域设置:
尝试在浏览器中加载到mydomain.com 或www.mydomain.com 会产生:
This site can’t provide a secure connection
www.mydomain.com uses an unsupported protocol.
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Unsupported protocol
The client and server don't support a common SSL protocol version or cipher suite.
自从我创建 LB 并更新我的域的 DNS 设置以来已经有大约 40 小时了,所以我怀疑问题是我的配置而不是 DNS 传播。我哪里错了?
编辑
编辑以澄清一些关键的事情:
- 我将我的 UI 作为静态网站托管在 Google Cloud Storage 存储桶中。 Cloud Storage doesn't support HTTPS on its own,因此需要 HTTPS 负载平衡器来处理自定义域。
- 如果我想走这条路,我需要确保负载平衡器指向我的 Cloud Storage 存储桶,这在我的原始帖子中没有提到。
- 要回滚此 SSL 尝试的所有更改,我需要将
@ ADNS 条目更新为 GAE IP,然后将www CNAME条目更新为c.storage.googleapis.com.。请注意,此 CNAME 条目适用于 Cloud Storage,不适用于 GAE。
我最终放弃了 SSL 的想法并选择了#3(现在)。有问题的应用程序是用于不处理任何敏感信息的个人项目,因此 SSL 确实没有必要。
【问题讨论】:
-
1/2) 如果您使用的是 Google App Engine,为什么要配置负载均衡器?您的 IPv4 记录指向负载平衡器前端,但 IPv6 记录指向 App Engine。除非您打算将 App Engine 用作负载平衡器的后端,否则您只需在 App Engine 中配置一个自定义域并将您的 DNS 记录指向 App Engine。 cloud.google.com/appengine/docs/standard/python/…
-
2/2) 否则删除 App Engine 中的自定义域并在负载均衡器前端配置证书。 cloud.google.com/load-balancing/docs/ssl-certificates/…
-
这对我来说是全新的。我创建了一个负载均衡器,因为它在文档中被推荐。如果我不需要,太好了!运动部件越少越好。 cloud.google.com/load-balancing/docs/ssl-certificates/…
-
我更新了域的 DNS 设置以再次匹配 GAE 自定义域 IP。但是,我在 GAE 设置 > SSL 证书下看不到任何内容,我唯一的选择是上传我自己的证书。我会给 DNS 一些时间来传播,看看这是否有效。
-
如果您按照我提供给您的链接中的步骤操作,Google 会为您的自定义域提供 SSL 证书。
标签: google-app-engine ssl google-cloud-platform dns