这是我第一次尝试配置在 Amazon EC2 上运行的服务器。
我弄清楚了如何在 80 端口上运行我的 Node 应用程序,但现在我正在尝试使用 Letsencrypt SSL 在 443 端口上运行。在使用 80 端口之前,我添加了
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
和
sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 3000
一切正常。但是现在在安装 Letsencrypt 之后我尝试做同样的事情但是使用 433 端口而不是 80 并且它不工作。
Letsencrypt 自动为我配置所有文件,所以现在从 http 重定向到 https 工作正常,当我的 iptable 在 https://上为空时,我看到 ubuntu 默认网站。当我使用 443 端口运行上面提到的行时,应用程序仍然无法正常工作(浏览器甚至无法加载任何内容)。它只适用于 http://...:3000
我已将 443 端口添加到 EC2 上的安全组。
我能做什么?谢谢。
最佳答案
你需要检查你的安全组Inbound/Outbound规则,你需要查看端口443是否分配给了哪个主机。一个有效但危险的配置,仅用于测试,允许入站和出站上的所有内容,以查看它是否是您的安全组的问题。
除此之外,您需要确定绑定(bind)端口是否正在监听。您在使用 Amazon Linux 吗?
关于node.js - 在 443 端口上使用 SSL 运行 Node 应用程序(在 80 上工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45509543/