启动Node.js时出错:openssl配置失败

时间:2018-09-05 14:57:57

标签: node.js express

启动Express节点时出现以下错误:

  

openssl配置失败:错误:02001003:系统库:fopen:否这样   处理

该节点仍会启动。 我不尝试使用SSL。

以下是起始代码:

...
app = Express;
app.set('port', process.env.PORT || config.port);
try {

    var server = app.listen(app.get('port'), function () {
        console.log('Express server listening on port ' + server.address().address + ':' + server.address().port);
    });
} catch (e) {
    log.fatal(e);
}

仅在部署服务器上发生。在开发人员计算机中运行可以正常运行。

3 个答案:

答案 0 :(得分:9)

问题是Express会寻找环境变量OPENSSL_CONF来查找SSL配置文件。

变量OPENSSL_CONF指向驱动器上的不存在位置。 我从系统中删除,消息消失了。

注意:必须使用新的控制台来启动节点,以便不存在环境变量OPENSSL_CONF。或在当前控制台上简单删除。

github上的其他信息

答案 1 :(得分:1)

请检查系统变量,并确认列出的openssl.cnf文件的位置是否正确。交叉检查并更新系统变量中的位置。 Sys variable image

答案 2 :(得分:0)

删除全局环境变量OPENSSL_CONF(以前的故障排除过程中遗留下来的问题)解决了我的问题。

在Windows上运行,您可以尝试:

在本地命令窗口中设置环境并验证问题:

set OPENSSL_CONF=c:\dummy  
npm -v

=>您现在可能会看到此ssl错误消息

删除环境并确认问题已消失:

set OPENSSL_CONF=
npm -v

=>没有ssl错误消息

来源:https://github.com/npm/npm/issues/17261