gpt4 book ai didi

amazon-web-services - 为什么 https 在 AWS Elastic Beanstalk 上被阻止?

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:49 24 4
gpt4 key购买 nike

我正在使用节点 js 在 AWS Elastic Beanstalk 上创建一个简单的网站。我正在尝试向 EC2 实例添加 SSL 证书,但它一直显示

"Error: listen EACCES: permission denied 0.0.0.0:443"

我错过了什么?

EC2 安全组:

入站规则:

HTTP    TCP    80    0.0.0.0/0
HTTP TCP 80 ::/0
HTTPS TCP 443 0.0.0.0/0
HTTPS TCP 443 ::/0

出站规则:

All traffic    All    All    0.0.0.0/0

节点JS:

    var ipaddress = "0.0.0.0";
var port = 443;

var options = {
key: sslKey,
cert: sslCert,
ca: [sslCa]
}

server = https.createServer(options, handleRequest);

server.listen(port, ipaddress, function () {
console.log("Server listening on port "+port);
});

最佳答案

我知道这个 Elastic Beanstalk 的东西没有很好的记录,但是因为我前段时间做了涵盖这个的 AWS DevOps 认证,我记得一些要点:

  • 您应该将 HTTP 服务器绑定(bind)到 0.0.0.0。我看到你已经这样做了。
  • 您的应用未在您的 EB 实例上以根权限运行。通常他们想让你做的——可能是出于安全原因——是通过在你的实例上预先配置的 nginx 代理来代理你的连接。他们将 PORT 环境变量传递给您的 node.js 应用程序,您应该使用它来监听代理的上游流量。 [1]
  • 要使 nginx 代理上的 SSL 终止正常工作,您必须相应地在代理上配置 ssl,正如 vikyol 已经正确指出的那样。 [2]
  • 代理和您的应用之间的连接将被解密。这应该不是问题,因为它不会让机器介于两者之间。

一些想法

  • 出于性能原因,如果您有一些 $$,我更愿意在负载均衡器上终止 SSL。
  • SSL 证书管理通常通过 ACM 更方便和 ELB。

引用资料

[1] https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/nodejs-platform-proxy.html
[2] https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-nodejs.html

关于amazon-web-services - 为什么 https 在 AWS Elastic Beanstalk 上被阻止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58155625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com