node.js - 在 443 端口上使用 SSL 运行 Node 应用程序(在 80 上工作)

标签 node.js linux apache ubuntu amazon-ec2

这是我第一次尝试配置在 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/

相关文章:

linux - 跳转服务器内部服务器之间的连接

c++ - 在 ubuntu shell 上编译 cpp 程序时出现问题

java - 生产环境: Spring security login success redirect to localhost

javascript - sequelize.js 自定义验证器,检查唯一的用户名/密码

javascript - 在查询中附加单引号 (' ' )

javascript - 无法从 webpack 包导入 ES6 模块

node.js - 使用过滤器进行 Elasticsearch 搜索查询

python - 如何在浏览器中显示 linux 日志文件中的行

wordpress - 子文件夹 WordPress 的 htaccess 冲突

Apache Shiro 与 Java EE 原生 API