Express.js HTTPS无法启动服务器

时间:2016-10-05 22:31:55

标签: javascript node.js ssl express https

我尝试为Express服务器配置HTTPS。我从this question's answers找到了以下代码。

console.log("Test 1");
var httpServer = http.createServer(app);
console.log("Test 2");
var httpsServer = https.createServer(credentials, app);
console.log("Test 3");
httpServer.listen(8080);
console.log("Test 4");
httpsServer.listen(8443);
console.log("Test 5");

问题是控制台中出现的唯一问题是Test 1Test 2。在那条线之后似乎没有任何东西在运行。我基本上只想在HTTP和HTTPS上运行相同的Express应用程序。

过去我只使用server = app.listen(port);来启动Express服务器。

有什么想法吗?

修改

Node应用程序继续运行,没有错误,但只是不打印最终的console.log语句。

var fs = require('fs');
var privateKey  = fs.readFileSync('ssl/servertest.key', 'utf8');
var certificate = fs.readFileSync('ssl/servertest.crt', 'utf8');
var credentials = {key: privateKey, cert: certificate};

servertest.keyservertest.crt

注意:我知道将这些内容放到网上并将其公开是一个坏主意。以它为例。在投入生产之前,我将重新生成SSL密钥。

1 个答案:

答案 0 :(得分:1)

是的,私钥受密码保护。

在我的系统上,我收到了错误,

Error: error:0906A068:PEM routines:PEM_do_header:bad password read

不确定你为什么不是,也许是它的节点版本。

这里有2个选项,可以使用openSSL从密钥中删除密码,也可以通过密码选项为选项提供密码。