stack"错误:证书链中的自签名证书"在尝试构建“node-gyp configure'

时间:2016-01-05 10:07:31

标签: node.js npm protractor node-gyp mssql-jdbc

在尝试为sql server

构建nodejs的microsoft驱动程序时出现以下错误
  

如果以ok结尾

,它会起作用的gyp信息      

gyp info使用node-gyp@3.2.1

     

gyp info使用node@5.3.0 | win32 | 64

     

gyp http GET   https://nodejs.org/download/release/v5.3.0/node-v5.3.0-headers.tar.gz

     

gyp WARN安装出错,回滚安装

     

gyp ERR!配置错误

     

gyp ERR! stack 错误:证书链中的自签名证书

     

gyp ERR!堆栈错误(本机)

     

gyp ERR!堆栈在TLSSocket。 (_tls_wrap.js:1057:38)

     

gyp ERR!堆栈在emitNone(events.js:67:13)

     

gyp ERR!堆栈在TLSSocket.emit(events.js:166:7)

     

gyp ERR!堆栈在TLSSocket._fini enter code here shInit

     

gyp ERR!不行,#34;

我尝试了下面的解决方法,但它工作

1) upgrade your version of npm

npm install npm -g --ca=null

- or -

2) tell your current version of npm to use known registrars  

npm config set ca=""

任何人都可以指导我如何解决此证书问题

5 个答案:

答案 0 :(得分:7)

不幸的是,node-gyp并没有使用npm的证书设置。

如果您正在调用node-gyp,则可以更新到最新的node-gyp,然后使用新的--cafile参数来提供有效的ca证书。

如果您使用npm来安装使用node-gyp构建自己的软件包,那么您唯一的办法就是预先设置NODE_TLS_REJECT_UNAUTHORIZED=0环境变量,以使其忽略CA证书问题。

请参阅github上的讨论:https://github.com/nodejs/node-gyp/issues/695

答案 1 :(得分:2)

对我来说,gyp rebuild找不到binding.gyp而它正试图下载它。 试试跑步: sudo npm install -g --unsafe-perm binding

答案 2 :(得分:0)

node-gyp开始编译node.js插件源时遇到相同的问题。并按照 @mujimu 的建议,进行了以下修复:将其设置为在执行NODE_TLS_REJECT_UNAUTHORIZED之前将shell变量0的值设置为npm install,如下所示:

$ set NODE_TLS_REJECT_UNAUTHORIZED=0
$ npm install

答案 3 :(得分:0)

使用以下命令设置在执行HTTPS请求时要使用的证书文件:

npm config set cafile /path/to/your/cert.pem --global

答案 4 :(得分:0)

使用了npm config set strict-ssl false并解决了该问题。