在 443 端口上使用 SSL 运行节点应用程序(在 80 端口上运行)

在 443 端口上使用 SSL 运行节点应用程序(在 80 端口上运行)

我正在尝试配置在 Amazon EC2 上运行的服务器。

我弄清楚了如何在端口 80 上运行我的节点应用程序,但现在我尝试使用 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 后,我​​尝试做同样的事情,但使用端口 443,而不是 80,但它不起作用。

Letsencrypt 自动为我配置所有文件,因此现在从 http 重定向到 https 工作正常。在 https:// 上我看到了 ubuntu 默认网站。应用程序仅适用于 http://...:3000

我已将 443 端口添加到 EC2 上的安全组中。

我可以做什么?

答案1

在服务器上拥有证书文件是不够的,您需要一个服务来侦听端口(例如 443),并在客户端希望有 ssl 连接时使用加密算法进行响应。可以办到:

  • 在不同的端口上,例如此类 cate 中的 apache 和 nginx 监听 80 和 443,一个用于 http,另一个用于 https。
  • 在同一端口上,例如邮件服务器可以在同一端口上使用 TLS 以及纯文本协议。

所以,这取决于你的服务。

相关内容