如何为Google Cloud Compute Engine负载均衡器设置Let's Encrypt证书?

16
我已经设置了Google Cloud项目,结合自动缩放实例模板使用负载均衡器。目前,实例组仅有一个实例。
我的域名成功地指向了负载均衡器的IP。在这些步骤中,一切都运行正常。
现在,我想为这个项目设置SSL。我想使用Letsencrypt服务来完成这个任务,但是我在尝试设置时没有成功。
在Google Cloud Engine负载均衡器窗口中,有一个选项可以将早期创建的证书与Google Cloud Shell一起设置到负载均衡器前端。不幸的是,我只能使用Google Cloud Shell创建.csr和.key文件。此外,我可以创建一个不安全的SSL证书,并从中获取.cert文件,但我想使用letsencrypt创建一个安全的SSL cert文件。Letsencrypt服务需要从命令行界面直接访问域名,这可能是我得到错误消息的原因,该错误消息指示无法检索域名。
我正在寻找一种使用Google Cloud在负载平衡器上安装Letsencrypt证书的方法。是否可以手动使用letsencrypt创建.cert文件而不是直接安装?如果不能,是否有其他方法或服务可以从.csr和.key文件创建.cert文件?
4个回答

7
你可以使用Certbot
以下是如何仅创建证书的示例。
$ ./certbot-auto certonly --standalone --email admin@example.com -d example.com -d www.example.com

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

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

特点

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

有关 GCE 的逐步教程可用


您提供的教程链接返回了404错误页面。 - themanwhoknowstheman

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接