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

时间:2015-08-27 11:28:05

标签: node.js socket.io

我已经在pc上安装并运行了node.js.当我如下所示制作一个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并在没有重新启动它很长时间后重新启动它来修复它。

UPDATE:安装了python,但现在却抱怨更多的错误。 screenie

2 个答案:

答案 0 :(得分:8)

由于您不在代理服务器之后,我认为这可能是SSL信任机构信任的问题。

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

npm config set ca ""

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

您可以尝试按照以下顺序重新安装/升级具有相应证书的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

答案 1 :(得分:0)

您也可以通过运行来切换到使用常规HTTP注册表而不是默认的HTTPS注册表:

npm config set registry http://registry.npmjs.org/

正如npm issue 8872

中所述