Gandi Simple Hosting上的NodeJs SSL:收听EACCES

时间:2014-07-09 18:21:45

标签: node.js ssl

我非常绝望,以下问题困扰我好几个星期了: 当我尝试在端口443上运行我的NodeJs实例时,我在Gandi Simple Hosting实例上遇到“listen EACCES”错误。 有什么我做错了,我不知道吗? 我必须说我对整个托管主题都很陌生。

我正在使用带有Express的NodeJs,这是相关的代码:

var express = require('express')
  , https = require('https');
var fs = require('fs');

var options = {
    key: fs.readFileSync('./scrt/apiKey.key'),
    cert: fs.readFileSync('./scrt/apiCrt.crt')
};
//....
app.set('port', process.env.PORT || 443);
//.....
https.createServer(options, app).listen(app.get('port'), function(){
});

你知道我想念的是什么吗? 也许我必须更改端口443的一些配置? Gandi刚告诉我,端口443是SSL的正确端口,所以实际上它应该可以工作......

非常感谢您的帮助!

编辑:这里没有人在nodejs上遇到过与SSL相同的问题吗? :/

2 个答案:

答案 0 :(得分:2)

在Gandi Simple Hosting中,SSL由SSL卸载程序完成,您无需自行处理。

ssl offloader然后重定向实例的8080端口上的所有传入流量(HTTP和HTTPS)。

要查看请求是否安全,我打赌你可以查看X-Forwarded-Proto标题。

答案 1 :(得分:1)

好的,我得到了Gandi支持团队的答案:所有流量,SSL而非SSL都被路由到8080端口。

我仍然无法让它工作,因为nodejs需要处理两个流量的一个端口,这不是直截了当的,请参阅这些帖子

编辑: @themouette是正确的,它开箱即用,无需在nodejs中处理它,但您需要在域级别激活证书,但来自您的实例的管理页面,这不是在文档中写的。