如何将 Let's Encrypt 与 Google HTTPS 负载均衡器和托管实例组一起使用?

如何将 Let's Encrypt 与 Google HTTPS 负载均衡器和托管实例组一起使用?

我正在尝试了解如何在 Google Cloud 上使用 HTTPS 区域负载均衡器进行自动扩展。他们的文档建议将与后端服务(从代理)的连接也设置为 HTTPS。这让我觉得我需要:

  • 包含 SSL 证书和配置为接收 HTTPS 流量的 Nginx 的实例模板。
  • 配置为从负载均衡器接收流量的托管实例组。
  • 配置了有效 SSL 证书的负载均衡器,可接收传入流量并将其转发到适当的区域实例组(根据 Google 的文档,还会触发扩展)。

尽管我读过,但我还是不明白 SSL 证书应该如何在这种设置下工作Google 的 SSL 证书文档及其有关负载均衡器的各种文档页面。

假设我想使用 Let's Encrypt 并每 45 天自动更新一次 SSL 证书,以下是我存在的问题:

  • 实例模板需要做什么才能获得有效证书?或者我可以在虚拟机上使用自签名证书吗?我在实例模板上使用 Docker,当我在临时 IP 地址上启动实例时,很难生成有效的自签名证书。
  • 实例模板是否需要 cron 作业和/或使用 certbot 每 45 天更新一次 SSL 证书?
  • Google 是否提供了一种方法来自动更新其在 HTTPS 负载均衡器上管理的 SSL 证书?

最后:

  • 有没有更好的方法来思考这个问题或有一个更容易考虑的解决方案?

答案1

您可以在虚拟机上使用自签名证书。事实上,我在虚拟机上使用的 NGINX 自签名证书大约在 8 个月前就已过期。我不认为负载均衡器会对证书本身进行任何验证——它只是 SSL 握手的必要部分。

您可以尝试在实例启动时为其自己的 IP 生成一些内容,并使用 cron 作业来更新它。如上所述,我认为这没有必要。

Google 不会自动替换证书,但您可以编写脚本。gcloud 命令行实用程序具有用于创建和更新大多数资源(包括证书和负载平衡器)的命令。

相关内容