【问题标题】:Nodejs https combined with cpanelNodejs https结合cpanel
【发布时间】:2019-01-08 19:13:42
【问题描述】:

我正在尝试让 https 像这样在我的 nodejs 服务器上运行:

var http = require('http');
var https = require('https');
var fs = require('fs');
var express = require('express');
var privateKey  = fs.readFileSync('server.key', 'utf8');
var certificate = fs.readFileSync('server.crt', 'utf8');

var credentials = {key: privateKey, cert: certificate};
var app = express();

var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);

httpServer.listen(8080, ()=> {
    console.log('Server started and listening on port 8080...')
});
httpsServer.listen(8443, ()=>{
    console.log('Server started and listening on port 8443...')
});

当我运行服务器时,只有 http url 工作,https 超时。 知道为什么会这样吗?

我习惯使用 cpanel,所以我已经在那里设置了 ssl 证书,但是当涉及到节点时,我正在碰壁。

【问题讨论】:

    标签: node.js ssl cpanel


    【解决方案1】:

    您的 ssl 文件似乎有问题,您需要在创建 https 服务器时提供证书文件和私钥:

    var express = require('express');
    var https = require('https');
    var http = require('http');
    var fs = require('fs');
    
    // This line is from the Node.js HTTPS documentation.
    var options = {
      key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
      cert: fs.readFileSync('test/fixtures/keys/agent2-cert.cert')
    };
    
    // Create a service (the app object is just a callback).
    var app = express();
    
    // Create an HTTP service.
    http.createServer(app).listen(80);
    // Create an HTTPS service identical to the HTTP service.
    https.createServer(options, app).listen(443);
    

    希望对你有帮助。

    【讨论】:

    • 这正是我所做的。
    • 我不能让 cpanel 来处理 ssl 文件吗?
    【解决方案2】:

    问题是端口没有被转发。

    【讨论】:

    • 你能告诉我你是如何转发端口的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 2018-12-14
    • 2017-08-21
    • 2014-08-29
    • 2018-06-06
    相关资源
    最近更新 更多