【问题标题】:NodeJs tls.createServer equivalent to Apache SSLCertificateChainFile?NodeJs tls.createServer 相当于 Apache SSLCertificateChainFile?
【发布时间】:2014-03-18 02:51:10
【问题描述】:

我有一个这样的 SSL Apache 配置:

SSLCertificateFile ~/certs/server.crt
SSLCertificateKeyFile ~/certs/server.key
SSLCertificateChainFile ~/certs/bundle.crt

现在在我的 NodeJs 服务器中,我使用 grunt 和 grunt-connect 作为服务器。

grunt-connect 的文档说它可以使用以下语法进行配置。

grunt.initConfig({
  connect: {
    server: {
      options: {
        protocol: 'https',
        port: 8443,
        key: grunt.file.read('server.key').toString(),
        cert: grunt.file.read('server.crt').toString(),
        ca: grunt.file.read('ca.crt').toString()
      },
    },
  },
});

我需要这个配置来匹配我的 Apache 配置。它有一个证书文件、一个密钥文件和一个捆绑文件。

查看 NodeJs 中 tls.createServer 的文档, 我没有看到一个看起来可能等同于 SSLCertificateChainFile 的选项。

如何让我的 NodeJs 连接服务器镜像与我的 Apache 服务器相同的 SSL 配置?


编辑

我也会将赏金奖励给能够做到这一点的人:

创建一个SSCCE Gruntfile,演示如何配置connect 以接受服务器证书捆绑证书。

【问题讨论】:

  • 到目前为止,您进行了哪些测试?你有什么问题?
  • @diosney 我可以启动服务器,但连接时出现错误,提示无法建立安全连接。这是因为我还没有像 Apache 那样开始连接链文件。这就是为什么我需要找出等价物是什么 - 或其他使其工作的方式。

标签: javascript node.js apache ssl grunt-connect


【解决方案1】:

您可以尝试将 server.crt 和 ca.crt 文件连接到一个文件中,并在 cert 选项中使用结果。不要使用ca 选项,根据docs,只有“如果客户端使用自签名证书”才需要。

【讨论】:

  • @bguiz 证书的顺序在连接文件中很重要。你试过所有的组合吗?
  • 我已经尝试过cert: grunt.file.read('server.crt').toString() + grunt.file.read('bundle.crt').toString(),cert: grunt.file.read('bundle.crt').toString() + grunt.file.read('server.crt').toString(),... 都没有成功。
  • Jakub,如果您可以将 SSCCE Gruntfile 配置为接受服务器证书和捆绑证书并演示如何执行此操作,将不胜感激。
  • @bguiz 我在 grunt 方面没有适当的经验,但我会尝试的最后一件事是在连接时在证书之间添加 '\n'(换行符)。或者使用文本编辑器这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 1970-01-01
  • 2023-02-03
  • 2010-09-23
  • 2019-01-21
相关资源
最近更新 更多