【问题标题】:Install root certificate to Node.js (HTTPS Client)将根证书安装到 Node.js(HTTPS 客户端)
【发布时间】:2014-07-07 21:59:09
【问题描述】:

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

我不想禁用证书验证。

【问题讨论】:

    标签: node.js ssl https certificate


    【解决方案1】:

    我解决了这个问题。

    使用它,它就像魅力一样:https://github.com/coolaj86/node-ssl-root-cas

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

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

    【讨论】:

    • 链接失效:链接重定向会将您带到丢失的域。
    【解决方案2】:

    添加environment variable

    NODE_EXTRA_CA_CERTS=file
    

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

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

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

    【讨论】:

      【解决方案3】:

      希望这对某人有所帮助:

      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/

      【讨论】:

      • 缺少的重要行是引用链接中的下一行:https.createServer(https_options, ... 不要忘记将一组选项传递给 createServer 构造函数/初始化程序。
      猜你喜欢
      • 2012-10-12
      • 2017-01-02
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 2018-05-26
      • 1970-01-01
      • 2018-03-12
      相关资源
      最近更新 更多