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

Mig*_*Slv 8 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);
}
Run Code Online (Sandbox Code Playgroud)

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

Mig*_*Slv 15

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

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

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

github上的更多信息


小智 8

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

在 Windows 上运行您可以尝试:

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

set OPENSSL_CONF=c:\dummy  
npm -v
Run Code Online (Sandbox Code Playgroud)

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

删除环境并验证问题是否消失:

set OPENSSL_CONF=
npm -v
Run Code Online (Sandbox Code Playgroud)

=> 没有 ssl 错误消息

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