Socket.io 无法验证第一个证书

Socket.io unable to verify the first certificate

我已经在电脑上安装了 node.js 和 运行ning。当我制作如下所示的 pakage.json 时,然后在该文件夹中 运行 cmd

npm install socket.io 

npm install 

它给出错误

unable to verify the first certificate

我该如何解决这个问题?

package.json

{
  "name": "app",
  "version": "0.0.1",
  "description": "app",
  "dependencies": {
  "socket.io": "latest"
},
  "author": "shadryck"
}

注意:我对 node.js 和 socket.io 完全陌生。我只是想以某种方式开始使用它。

注意:如果出于某种原因您要对此投反对票,至少要解释原因。我确实做了我的研究,但无法在任何地方找到答案。

更新:通过重新安装 node.js 并在很长时间未重新启动电脑后重新启动电脑来修复它。

更新:已安装 python,但现在它抱怨更多错误。 screenie

由于您没有使用代理,我认为这可能是受信任的 SSL 根证书颁发机构的问题。

首先你可以尝试强制 NPM 使用已知的注册商

npm config set ca ""

如果这不起作用,可能是因为安装时缺少证书。

您可以通过按顺序执行以下操作来尝试 reinstall/upgrade NPM 使用适当的证书

npm config set ca ""
npm install npm -g
npm config delete ca

如果仍然失败,您可能需要强制下载丢失的 CA。幸运的是,有一个库可以解决这个问题。不幸的是,这个过程中存在安全隐患。 (我愿意接受听力改善!)。

首先,使用

关闭 npm 中的 ssl(这是安全隐患)
npm config set strict-ssl false

然后就可以安装了

npm install ssl-root-cas

然后只需键入 node 并在 REPL 中键入

var sslRootCAs = require('ssl-root-cas/latest')
sslRootCAs.inject()

然后重新打开 SSL 并测试

npm config set strict-ssl false

您也可以通过 运行:

切换到使用常规 HTTP 注册表而不是默认的 HTTPS 注册表
npm config set registry http://registry.npmjs.org/

npm issue 8872

所述