如何在我的节点JS服务器中包含根CA证书?

时间:2018-03-19 21:23:17

标签: node.js npm module ssl-certificate

我在Mac High Sierra上使用npm v 5.7.1。我刚刚安装了这个模块

npm install ssl-root-cas

(出于某种原因,添加" -g"没有工作)。然后我在我的JS文件中有这个

require('ssl-root-cas')
    .inject()
    .addFile(fs.readFileSync(conf.root_cert));

然而,在执行上面的代码(特别是" inject()"行)时,我收到错误

/Users/satishp/Documents/workspace/projA/node_modules/ssl-root-cas/ssl-root-cas.js:3637
  var filepaths = filepath.split(/\//g);
                           ^

TypeError: filepath.split is not a function
    at Array.module.exports.rootCas.addFile (/Users/satishp/Documents/workspace/projA/node_modules/ssl-root-cas/ssl-root-cas.js:3637:28)
    at Object.<anonymous> (/Users/satishp/Documents/workspace/projA/server.js:79:3)
    at Module._compile (module.js:662:30)
    at Object.Module._extensions..js (module.js:673:10)
    at Module.load (module.js:575:32)
    at tryModuleLoad (module.js:515:12)
    at Function.Module._load (module.js:507:3)
    at Function.Module.runMain (module.js:703:10)
    at startup (bootstrap_node.js:193:16)
    at bootstrap_node.js:660:3

我对如何继续有点困惑。我该如何克服这个错误?

1 个答案:

答案 0 :(得分:0)

您只需传递addFile函数的文件路径,无需手动加载文件内容:

require('ssl-root-cas')
  .inject()
  .addFile(conf.root_cert);