14

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

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

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

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

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

4

4 回答 4

6

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

于 2017-12-24T21:11:33.173 回答
5

您可以使用certbot

以下是如何仅创建证书的示例

$ ./certbot-auto certonly --standalone --email admin@example.com -d example.com -d www.example.com
于 2017-12-01T16:07:07.453 回答
1

实现目标的一个好方法是云功能 + 云调度器 + https://github.com/bloomapi/letsencrypt-gcloud-balancer

于 2019-03-04T19:46:59.100 回答
1

如果您在 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的分步教程。

于 2018-01-17T13:15:03.907 回答