将根证书安装到Node.js(HTTPS客户端)

时间:2014-05-19 20:04:07

标签: node.js ssl https certificate

我想通过HTTPS连接到Node.js作为客户端的内部企业服务器。 如何将我的内部根证书安装到Node.js,以便证书验证成功?

我不想禁用证书验证。

3 个答案:

答案 0 :(得分:7)

我解决了这个问题。

使用它,它可以作为魅力:https://github.com/coolaj86/node-ssl-root-cas

  1. 创建证书文件夹
  2. 将根证书放在那里
  3. 使用上面的模块
  4. 加载证书

    如果您使用Sails.js,请将代码放入config / bootstrap.js

答案 1 :(得分:0)

添加一个environment variable

NODE_EXTRA_CA_CERTS=file
  

设置后,众所周知的“根” CA(如VeriSign)将使用文件中的其他证书进行扩展。该文件应包含一个或多个PEM格式的受信任证书。如果文件丢失或格式错误,则将(一次)通过process.emitWarning()发出一条消息,但否则将忽略任何错误。

     

请注意,当为TLS或HTTPS客户端或服务器明确指定ca options属性时,既不会使用众所周知的证书,也不会使用额外的证书。

     

当节点以setuid根身份运行或设置了Linux文件功能时,将忽略此环境变量。

答案 2 :(得分:0)

希望这可以帮助某人:

var https = require('https');

var fs = require('fs');

var https_options = {

  key: fs.readFileSync("/path/to/private.key"),

  cert: fs.readFileSync("/path/to/your_domain_name.crt"),

  ca: [

          fs.readFileSync('path/to/CA_root.crt'),

          fs.readFileSync('path/to/ca_bundle_certificate.crt')

       ]
};

参考:https://cheapsslsecurity.com/blog/how-to-install-ssl-certificate-on-node-js/

您可以使用此链接来检查您的证书: https://www.digicert.com/help/