繁体   English   中英

如何为 Google Cloud Compute Engine 负载均衡器设置 Letsencrypt?

[英]How to setup Letsencrypt for Google Cloud Compute Engine load balancer?

我已将我的 Google Cloud 项目设置为将负载均衡器与自动缩放实例模板结合使用。 目前实例组只有一个实例。

我的域名成功引用了负载均衡器 IP。 直到这些步骤一切正常。

现在我想为这个项目设置 SSL。 我想用 Letsencrypt 服务来做到这一点,但是我在尝试设置时没有成功。

在 Google Cloud Engine 负载平衡器窗口中,有一个选项可以将之前创建的带有 Google Cloud shell 的证书设置到负载平衡器前端。 不幸的是,我只能使用 Google Cloud Shell 创建一个 .csr 和 .key 文件。 此外,我可以创建一个不安全的 ssl 证书并从中获取 .cert 文件,但我想使用 letencrypt 创建一个安全的 SSL 证书文件。 Letsencrypt 服务需要从执行突击队的命令行界面直接访问域,这可能是我收到指示无法检索域名的错误的原因。

我正在寻找一种使用 Google Cloud 在负载均衡器上安装 Letsencrypt 证书的方法。 有没有办法我可以手动创建一个带有 letencrypt 的 .cert 文件而不是直接安装它? 如果没有,是否有另一种方法或服务可以从 .csr 和 .key 文件创建 .cert 文件?

您可以使用sslforfree.com ,它会为您调用 LetsEncrypt 并为您提供下载密钥。 它还可以提醒您更新证书。 (目前无法在 Google LB 中自动更新证书)

您可以使用certbot

这是如何仅创建证书的示例

$ ./certbot-auto certonly --standalone --email admin@example.com -d example.com -d www.example.com

如果您在 Google Compute Engine 之上使用 Kubernetes,一个很好的解决方案是cert-manager ,它是kube-lego的继承者。 两者都可以自动从 Let's Encrypt 请求 Kubernetes Ingress 资源的证书:

特征

  • 认识到在这种情况下需要新证书:
    • 不存在证书
    • 现有证书不包含所有域名
    • 现有证书已过期或即将过期(参见选项 LEGO_MINIMUM_VALIDITY)
    • 现有证书无法解析、无效或与密钥不匹配
  • 为 Let's Encrypt 创建一个用户帐户(包括私钥)并将其存储在 Kubernetes 机密中(机密名称可通过 LEGO_SECRET_NAME 配置)
  • 从 Let's Encrypt 获取丢失的证书并使用 HTTP-01 质询授权请求
  • 确保特定的 Kubernetes 对象(服务、入口)包含 HTTP-01 挑战成功的权限配置
  • 用于简单部署的官方 Kubernetes Helm 图表。

一步一步的教程GCE 可用

实现目标的一个好方法是云函数 + 云调度程序 + https://github.com/bloomapi/letsencrypt-gcloud-balancer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM