首页 > 解决方案 > 与 API 的 HTTPS 连接不起作用 Express/Node/Nginx

问题描述

我有一个 AWS 实例正在运行并使用 certbot 创建了一个证书:我可以使用浏览器访问https://www.tichutimo.ch/,它会显示默认页面。配置了一条路由http://www.tichutimo.ch:5000/api/users/test只响应一些文本。使用 http 这可以正常工作。但是当我尝试https://www.tichutimo.ch:5000/api/users/test时,我进入"SSL_ERROR_RX_RECORD_TOO_LONG"了 Firefox。

现在我什至不确定在哪里寻找解决方案:快递?在 Nginx 中?我在我的快递日志中没有看到任何内容..

卷曲我得到curl: (35) error:1400410B:SSL routines:CONNECT_CR_SRVR_HELLO:wrong version number

标签: node.jsexpressnginxamazon-ec2

解决方案


我猜你想使用 nginx 设置为反向代理。在该设置中,它应该接受传入的 https 连接(在默认端口 443 上)并在您的情况下通过http://localhost:5000将它们传递给您的 nodejs 服务器。这是一个很好的高性能设置:nginx 处理 https 的繁重工作,您的 nodejs 程序可以专用于您的应用程序。

因此,您的 https 网址不正确。取出端口 5000 引用。像这样。 https://www.tichutimo.ch/api/users/test

但是,当我在您的网站上尝试时,我得到了 nginx 的 404 页面。您的前门页面显示 nginx 的默认页面。因此,您的 /etc/nginx.conf 似乎没有正确设置来执行反向代理工作。

'toobz 有很多很好的教程,解释它超出了 Stack Overflow 答案的范围。如果你卡住了,请再问一个问题。


推荐阅读