使用猫鼬时,Azure错误:SSL错误:CERT_UNTRUSTED

时间:2018-11-13 05:16:38

标签: node.js azure npm

拥有一个使用mongoose在本地运行的node.js应用程序来处理mlab的mongodb。没问题

我将代码发布到github,然后告诉Azure将我的应用程序托管为Webapp,这是我做过很多次而没有猫鼬的事情。

据我所知,Azure会代表我在我的package.json文件中安装一个npm,因为它将我的应用程序安装到其中一个Web服务器主机中。

如果我在users.js路由中注释掉以下几行:

//var mongoose = require('mongoose');
//var ObjectID = require('mongodb').ObjectID;

一切正常,Azure运行我的应用程序。

如果我不将其注释掉,则会在Azure日志中记录以下错误:

npm http GET https://registry.npmjs.org/mongoose
npm ERR! Error: SSL Error: CERT_UNTRUSTED

为了解决此问题,我在package.json文件中添加了: [1]强迫azure使用此版本的节点

"engines": {
    "node": "0.8.x"
  },

[2]试图强制使用当前版本

 "mongoose": "^5.3.11",

[3]试图强迫谈判者使用该版本,因为GitHub抱怨谈判者存在安全问题

"negotiator": ">=0.6.1",

我真的很想继续让Azure使用GitHub运行我的Web应用程序,而不是进入Azure命令行来安装我的位,所以我对安装没有太多控制。猫鼬有些不好。

谢谢

2 个答案:

答案 0 :(得分:0)

您可以尝试的一件事是更新到较新证书的定义。 此版本的 config-defs.js 可以解决问题(通常位于 / deps / npm / lib / utils 下)。

您可能还需要按照 here

所述使用其他证书更新该文件。

希望有帮助!

答案 1 :(得分:0)

Neil Lunn修复了问题,谢谢。我在运行节点v10.x.x时遇到问题,并尝试回落到V8.x.x来解决v10中的重大更改,然后搞砸了V8的名称。 “ node”:“ 0.8.x”不能获得V8,8.10.0可以,并且一切都很好。