node.js Expess https给出了ERR_CONNECTION_REFUSED

时间:2017-10-27 15:59:33

标签: node.js express https

nodejs版本v6.11.5

通过Express托管时,网站会加载,即

app.listen(port, function () {
    console.log("The Server Has Started!");
});

但是,当通过https托管时,我收到 ERR_CONNECTION_REFUSED 错误。对于使用https进行托管,我正在使用

var options = {
    ca: fs.readFileSync(__dirname+'/keys/sitname.ca-bundle'),
    key: fs.readFileSync(__dirname + '/keys/sitname.key'),
    cert: fs.readFileSync(__dirname + '/keys/sitname.crt'),
};
var app = express();
.... the app .....
https.createServer(options, app).listen(port, function(){
    console.log("server started at port "+port);
});

端口设置为80 ,ufw规则如下

To                         Action      From
--                         ------      ----
22                         LIMIT       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
22 (v6)                    LIMIT       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

任何回应都会非常明显。

2 个答案:

答案 0 :(得分:2)

对于https,您必须将端口设置为443,因为https默认使用此端口。另一个选择是,您在发送请求时定义要将端口80用于https:my-domain.com:80。但我不确定这是否有效。

答案 1 :(得分:0)

来自@ floriangosse的评论,

HTTPS默认使用端口443,因此使用端口80进行HTTPS会提供 ERR_CONNECTION_REFUSED

切换到443端口