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 应用程序版本