web-dev-qa-db-ja.com

'node-gyp configure'をビルドしようとすると、スタック「エラー:証明書チェーン内の自己署名証明書」

SQLサーバー用のnodejs用のMicrosoftドライバーをビルドしようとすると、以下のエラーが発生しました

okで終わる場合は動作したgyp情報

[email protected]を使用したgyp情報

[email protected]を使用したgyp情報| win32 | x64

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

gyp WARNインストールでエラーが発生し、インストールをロールバックしました

gyp ERR!構成エラー

gyp ERR!スタックエラー:証明書チェーン内の自己署名証明書

gyp ERR!エラー時のスタック(ネイティブ)

gyp ERR! TLSSocketでスタックします。 (_tls_wrap.js:1057:38)

gyp ERR! EmmitNoneでスタック(events.js:67:13)

gyp ERR! TLSSocket.emitでスタック(events.js:166:7)

gyp ERR! TLSSocket._finienter code hereshInitでスタック

gyp ERR!よくない "

私は以下の回避策で試しましたが、それはうまくいきません

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

誰かがこの証明書の問題を解決する方法を教えてもらえますか

7
Dilip Reddy

残念ながら、node-gypはnpmの証明書設定を利用していません。

Node-gypを呼び出している場合は、最新のnode-gypに更新してから、新しい--cafileパラメーターを使用して、有効なCA証明書を提供すると思われます。

Npmを使用してnode-gypでビルドするパッケージをインストールする場合、唯一の手段は、CA証明書の問題を無視するように事前にNODE_TLS_REJECT_UNAUTHORIZED=0環境変数を設定するハックです。

ここでgithubに関する議論を参照してください: https://github.com/nodejs/node-gyp/issues/695

9
mujimu

私にとって、gyprebuildはbinding.gypを見つけることができず、それをダウンロードしようとしていました。実行してみてください:Sudo npm install -g --unsafe-perm binding

3
verses

次のコマンドを使用してHTTPS要求を実行するときに使用する証明書ファイルを設定します。

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

node-gypnode.jsアドオンソースのコンパイルを開始したときに同じ問題が発生しました。そして、@ mujimが提案したように、次のように、NODE_TLS_REJECT_UNAUTHORIZEDを実行する前にシェル変数0値をnpm installに設定するように修正しました。

$ set NODE_TLS_REJECT_UNAUTHORIZED=0
$ npm install
0
Arpit Aggarwal

中古 npm config set strict-ssl falseそしてそれは問題を修正しました。

0
arul pushpam