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

时间:2017-11-16 19:41:00

标签: ssl load-balancing google-compute-engine lets-encrypt certbot

我设置了我的Google云端项目,将负载均衡器与自动扩展实例模板结合使用。目前,实例组只有一个实例。

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

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

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

我正在寻找一种使用Google Cloud在loadbalancer上安装Letsencrypt证书的方法。有没有办法如何使用letsencrypt手动创建.cert文件而不是直接安装?如果没有,是否有另一种方法或服务来从.csr和.key文件创建.cert文件?

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

您可以使用certbot

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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