Reputation: 1333
Using Webstorm and Node.js, I am trying to install ursa
module through npm. I need this module because it is a pre-requisite of another module.
When I do install, the installation fails on node-gyp rebuild
.
The console output is as:
C:\Users\{Me}>npm install ursa --save
> [email protected] install C:\Users\{Me}\node_modules\ursa
> node-gyp rebuild
C:\Users\Me\node_modules\ursa>if not defined npm_config_node_gyp
(node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..
\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "" rebuild )
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: unable to get local issuer certificate
gyp ERR! stack at Error (native)
gyp ERR! stack at TLSSocket.<anonymous> (_tls_wrap.js:1092:38)
gyp ERR! stack at emitNone (events.js:86:13)
gyp ERR! stack at TLSSocket.emit (events.js:185:7)
gyp ERR! stack at TLSSocket._finishInit (_tls_wrap.js:610:8)
gyp ERR! stack at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:440:38)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe"
"C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\{Me}\node_modules\ursa
gyp ERR! node -v v6.11.0
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "ursa" "--save"
npm ERR! node v6.11.0
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ursa package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs ursa
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls ursa
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! C:\Users\p704644d\{Me}\npm-debug.log
I can provide the log file if needed.
I googled and found out that:
npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY
This error means that there's a TLS certificate in the chain that is signed by an unknown certificate authority (CA). Presumably, this is the certificate used by one's HTTPS proxy. The solution is to configure the cafile value:
$ npm config set cafile /path/to/your/file.pem
If you need to, you can generate a .pem file from a .crt one with:
Source: https://github.com/npm/npm/wiki/Troubleshooting
$ openssl x509 -inform der -in /path/to/the.crt -out /path/to/the/file.pem
The question is, how do I know what certificate the installation failed on, and how I can generate a .pem file? Where I should find my certificates and how to bundle them in order to get one .pem file? (on Win 7)
Upvotes: 4
Views: 31986
Reputation: 2634
If you are behind a corporate firewall that swaps SSL certificate with SSL inspection, ask your network administrator for the certificate file. Otherwise, you may be able to download it using Firefox or Chrome by connecting to any website which the certificate is swapped. Then you may use NODE_EXTRA_CA_CERTS
to provide the certificate file to Node.js, as I've answered in How to add custom certificate authority (CA) to nodejs.
Upvotes: 3