Overview
我在 App Engine 上有一个具有自定义域和 Google 提供的 SSL 证书的实例,但现在我需要在其前面放置一个 Google Cloud Load Balancer。
我按照此处的说明进行操作(进行了调整以针对 App Engine 而不是 Cloud Run 执行此操作):https://cloud.google.com/load-balancing/docs/https/setting-up-https-serverless
我首先执行了该指南中的步骤,然后更新了 GoDaddy 中的 DNS 记录以指向负载均衡器的 IP。
问题
问题是,在我更新 GoDaddy DNS 记录以指向负载均衡器的 IP 后,花了将近一个小时才再次可访问。当尝试通过浏览器或代码访问该网站时,我收到 SSL 错误。
配置 SSL 证书
核心问题似乎是负载均衡器的 SSL 证书的状态为PROVISIONING
并且该域的状态为FAILED_NOT_VISIBLE
,文档对此说:
该网域的 DNS 记录无法解析为 Google Cloud 负载均衡器的 IP 地址。要解决此问题,请更新 DNS A/AAAA 记录以指向负载均衡器的 IP 地址。
https://cloud.google.com/load-balancing/docs/ssl-certificates/troubleshooting#domain-status
这些文档说的是PROVISIONING
:
Google Cloud 正在与证书颁发机构合作颁发
证书。配置 Google 管理的证书可能需要花费一些时间
至 60 分钟
https://cloud.google.com/load-balancing/docs/ssl-certificates/google-management-certs#verify-target-proxy
我可以做些什么来避免/最大限度地减少这一小时的停机时间?
我仍然需要对我的生产项目执行此操作。也许如果我交换步骤的顺序(在创建 SSL 证书之前将 DNS 记录指向 IP)?
如果我能在更新 DNS 记录以指向负载均衡器的 IP 之前获得 SSL 证书,似乎就好了,但更新 DNS 似乎是 SSL 证书启动的先决条件。
这很有趣,因为我已经通过 App Engine 自定义域设置从 google 获得了这些域的 SSL 证书。我希望这些可以重新用于负载均衡器。
https://cloud.google.com/appengine/docs/standard/python/secure-custom-domains-with-ssl#verify_a_management_certificate_has_been_provisioned