繁体   English   中英

到 API 的 HTTPS 连接不工作 Express/Node/Nginx

[英]HTTPS connection to API not working 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时,我在 Firefox 中得到"SSL_ERROR_RX_RECORD_TOO_LONG"

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

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

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

所以,你的 https URL 不对。 取出端口 5000 引用。 像这样。 https://www.tichutimo.ch/api/users/test

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

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

感谢@o-jones 的评论弄清楚了。

  1. 我不得不从请求中删除端口
  2. 我必须添加带有 proxy_pass 的行,如下所示

    location / { proxy_pass http://localhost:5000; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM