【发布时间】:2021-08-06 17:28:43
【问题描述】:
我的后端服务调用第三方 API (Kamer van koophandel) 来检索一些数据。但是这个 API 需要我设置一个证书。在本地它正在工作,但是当我将它推送到 Heroku 时,会发生以下错误:
Warning: Ignoring extra certs from `Private_G1_chain.pem`, load failed: error:02001002:system library:fopen:No such file or directory
Warning: Ignoring extra certs from `Private_G1_chain.pem`, load failed: error:02001002:system library:fopen:No such file or directory
Warning: Ignoring extra certs from `Private_G1_chain.pem`, load failed: error:02001002:system library:fopen:No such file or directory
Warning: Ignoring extra certs from `Private_G1_chain.pem`, load failed: error:02001002:system library:fopen:No such file or directory
gyp: Call to 'node -p "require('node-addon-api').include"' returned exit status 0 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/tmp/build_e15be358/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack at ChildProcess.emit (events.js:376:20)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
gyp ERR! System Linux 4.4.0-1088-aws
gyp ERR! command "/tmp/build_e15be358/.heroku/node/bin/node" "/tmp/build_e15be358/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/tmp/build_e15be358/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node" "--module_name=bcrypt_lib" "--module_path=/tmp/build_e15be358/node_modules/bcrypt/lib/binding/napi-v3" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=3" "--node_napi_label=napi-v3"
gyp ERR! cwd /tmp/build_e15be358/node_modules/bcrypt
gyp ERR! node -v v14.17.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/tmp/build_e15be358/.heroku/node/bin/node /tmp/build_e15be358/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/tmp/build_e15be358/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node --module_name=bcrypt_lib --
在 Heroku 中,我设置了真正的配置变量: NODE_EXTRA_CA_CERTS = Private_G1_chain.pem
奇怪的是:如果我首先将我的应用程序推送到 Heroku,然后设置 NODE_EXTRA_CA_CERTS 它可以工作,但如果设置了 NODE_EXTRA_CA_CERTS 然后我将我的应用程序推送到 Heroku,我会收到上述错误..
顺便说一句,我的应用程序是内置的:node/express 并使用 typescript。
提前致谢!
【问题讨论】:
-
也许是 heroku 上的一个错误。在 heroku 上创建另一个应用程序,然后重试。另一个测试可能是删除 heroku 仪表板中的 env var 并将其设置在代码的开头
process.env['NODE_EXTRA_CA_CERTS '] =Private_G1_chain.pem
标签: typescript express heroku server certificate