![如何将 Let's Encrypt 与 Google HTTPS 负载均衡器和托管实例组一起使用?](https://linux22.com/image/718628/%E5%A6%82%E4%BD%95%E5%B0%86%20Let's%20Encrypt%20%E4%B8%8E%20Google%20HTTPS%20%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%E5%92%8C%E6%89%98%E7%AE%A1%E5%AE%9E%E4%BE%8B%E7%BB%84%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8%EF%BC%9F.png)
我正在尝试了解如何在 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 命令行实用程序具有用于创建和更新大多数资源(包括证书和负载平衡器)的命令。