AWS Elastic Beanstalk - NodeJS:在没有 Beanstalk 负载均衡器的情况下从 Letsencrypt 获取证书 SSL

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk - NodeJS:在没有 Beanstalk 负载均衡器的情况下从 Letsencrypt 获取证书 SSL【英文标题】:AWS Elastic Beanstalk - NodeJS : Get certificate SSL from Letsencrypt without Beanstalk Load Balancer 【发布时间】:2018-07-01 09:28:07 【问题描述】:

对于我在 Elastic BeanStalk 中的 nodejs 应用程序,没有 Beanstalk 负载均衡器,我想设置 Letsencrypt 证书并保留 AWS 提供的经典域:xxx.xxxx.elasticbeanstalk.com

经过多次搜索,我找到了两种可能的解决方案:

1 - 使用 .ebextensions 文件 => 安装 Certbot,获取 Letsencrypt 证书并配置 nginx

关于那个的好帖子 => https://bluefletch.com/blog/domain-agnostic-letsencrypt-ssl-config-for-elastic-beanstalk-single-instances/

2 - 从 ssh 连接,安装 Certbot,生成证书并将其上传到 IAM AWS。

文档 AWS : https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl-upload.html

对于这两种解决方案,我在 Certbot 进行域验证期间收到相同的错误消息。

我认为certbot生成的用于验证的目录不可访问..

错误:

To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.

所以,我的问题是:设置 SSL 证书以在没有 Beanstalk 负载均衡器的情况下为 Node Js Elastic BeanStalk 应用程序获得绿锁的最佳方法是什么?

感谢您的帮助。

【问题讨论】:

您是否要为elasticbeanstalk.com 获取证书?您只能获取您拥有的域的证书,我很确定亚马逊拥有该域。如果您注册自己的域并获得证书,您应该能够将其安装到您的实例上。 @Brian 实际上,我没有域名,在这种情况下我无法使用 AWS Certificate Manager。我将此应用程序用作 webhook 来与 Facebook API 进行通信。这就是我需要加密连接的原因。谢谢您的回答。我终于找到了解决方案。我为 github.com/SammyHam/… 创建了一个 git 【参考方案1】:

我终于找到了解决办法:

我从script 中获得灵感,并使用 WEBROOT MODE 创建了一个。

我创建了一个 git 来分享这个解决方案:

https://github.com/SammyHam/LetsEncrypt-SSL-config-for-Elastic-Beanstalk

【讨论】:

感谢@Sam,我在 AWS Linux 2 Elastic Beanstalk 设置上尝试了您的 github 代码,但得到 502 Bad Gateway。我的日志显示以下connect() failed (111: Connection refused) while connecting to upstream, client: 132.123.234.43, server: localhost, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:3030/", host: "mydomain.uk"

以上是关于AWS Elastic Beanstalk - NodeJS:在没有 Beanstalk 负载均衡器的情况下从 Letsencrypt 获取证书 SSL的主要内容,如果未能解决你的问题,请参考以下文章

将 AWS 颁发的证书用于单实例 Elastic Beanstalk 应用程序

为 Rails 应用程序创建 AWS Elastic Beanstalk 环境时出错

配置 AWS Elastic Beanstalk Nginx 以使用 socket.io 连接的主要问题

AWS Elastic Beanstalk - PHP 脚本在部署新版本后无法执行

PHP AWS Elastic Beanstalk - 不能发布超过 2GB 的文件

Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本