我设置了我的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文件?
答案 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