【问题标题】:How to send ssl certificate chain to client如何向客户端发送 ssl 证书链
【发布时间】:2020-02-25 08:50:51
【问题描述】:

我已经创建了Nodejs Websocket 服务器或基于Python 的服务器。如何将证书链发送到 WebSocket 浏览器客户端,使连接变得可信?

我已经描述了这个problem here。我在示例代码中看到服务器正在使用两个证书 - 密钥和公共证书。但是,两个示例中都没有使用“ca-bundle”文件。然而,在 Apache 网络服务器中,它使用所有三个证书。

【问题讨论】:

    标签: python node.js ssl-certificate


    【解决方案1】:

    Apache 对包含服务器端点证书的文件有单独的配置选项,它从SSLCertificateFile 定义的路径名中读取,对于包含中间证书链的文件,它从SSLCertificateChainFile 定义的路径名中读取。

    Python 希望端点证书和中间证书一起收集在一个文件中,服务器的端点证书显示为该文件中的第一个证书,中间证书紧随其后。该文件的路径名应作为certfile 参数传递给ssl.wrap_socket()ssl.SSLContext.load_cert_chain(),或者传递给您用于构建HTTPS 服务器的任何更高级别的API。只需将两个 Apache 文件的内容粘贴在一起,您就可以为 Python 构建这个单一的组合文件。

    Node.js 希望端点证书和中间证书作为单个字符串收集在一起,服务器的端点证书显示为该字符串中的第一个证书,中间证书紧随其后——这与 Python 希望它们的顺序相同.此字符串作为options 参数的cert 成员传递给https.createServer(),或传递给您用于构建HTTPS 服务器的任何其他API。由您来构建证书字符串。您的程序可以通过从 Apache 使用的两个单独文件中读取证书然后将字符串连接在一起来做到这一点,或者它可以从您创建供 Python 使用的单个组合端点+中间文件一次性读取它们。

    【讨论】:

      猜你喜欢
      • 2012-11-10
      • 2012-03-27
      • 2011-05-04
      • 2013-06-06
      • 1970-01-01
      • 2014-01-19
      • 2013-08-04
      • 2010-10-16
      • 2017-04-28
      相关资源
      最近更新 更多