我正在尝试配置在 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 以及纯文本协议。
所以,这取决于你的服务。