尝试构建“node-gyp 配置”时出现“错误:证书链中的自签名证书”

问题描述 投票:0回答:8

在尝试为 sql server 构建 Nodejs 的 microsoft 驱动程序时遇到以下错误

gyp 信息如果以 ok 结尾则有效

使用 [电子邮件受保护]

获取埃及信息

gyp 信息使用 [电子邮件受保护] | WIN32 | x64

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

gyp WARN 安装出错,回滚安装

吉普错误!配置错误

吉普错误!堆栈错误:证书链中的自签名证书

吉普错误!错误时堆栈(本机)

吉普错误! TLSSocket 处的堆栈。 (_tls_wrap.js:1057:38)

吉普错误!堆栈位于 emitNone (events.js:67:13)

吉普错误!堆栈位于 TLSSocket.emit (events.js:166:7)

吉普错误!堆栈位于 TLSSocket._fini

enter code here
shInit

吉普错误!不好”

我尝试了以下解决方法,但它不起作用

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=""

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

node.js npm protractor node-gyp mssql-jdbc
8个回答
16
投票

不幸的是,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


3
投票

对我来说,gyp重建找不到bounding.gyp,它正在尝试下载它。 尝试运行:


sudo npm install -g --unsafe-perm binding


3
投票

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

$ set NODE_TLS_REJECT_UNAUTHORIZED=0
$ npm install

2
投票

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

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

2
投票

使用了

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


1
投票

如果这与公司代理相关,解决此问题的 3 个步骤:

  1. 检索公共证书并将其转换为 .pem 格式。该文件看起来像这样。
    -----BEGIN CERTIFICATE----- ABCDEFGHIJKLMNOPQRSTBLABLA...MORECHARSHERE -----END CERTIFICATE-----\n------BEGIN CERTIFICATE ... etc
    取决于您的公司
  2. 将它们存储在您电脑上的某个位置。我将它们存储在我的存储库中
  3. 在终端执行
    NODE_EXTRA_CA_CERTS=/home/<yourUser>/git/myproject/certs/myBundle.pem npm i --quiet

对于 Windows,您必须将其更改为:

NODE_EXTRA_CA_CERTS=C:\Users\<yourUser>\git\myproject\certs\myBundle.pem npm i --quiet


0
投票

唯一对我有用的是使用

NODE_EXTRA_CA_CERTS
环境变量来传递自签名证书。
node-gyp
不会查看
npm
的配置文件,也不查看
npm
的任何环境变量。但使用 NODE 环境变量似乎确实可以通过。


-1
投票

先尝试卸载 Angular/cli 并安装 node-gyp,然后尝试重新安装 Angular cli

npm uninstall -g @angular/cli
npm install -g node-gyp
npm install -g @angular/cli

效果完美

© www.soinside.com 2019 - 2024. All rights reserved.