【问题标题】:Creating TLS client in Electron desktop app在 Electron 桌面应用程序中创建 TLS 客户端
【发布时间】:2020-04-24 19:51:35
【问题描述】:

我正在尝试在 TLS 中创建节点服务器并在电子中创建 TLS 客户端,以作为桌面应用程序分发给用户。我可以将证书添加到我的 TLS 服务器并运行它。

但是如何创建需要我在选项中插入密钥和证书来创建客户端的客户端。

tls.connect(8000, {
     key: fs.readFileSync('client-key.pem'),
     cert: fs.readFileSync('client-cert.pem')
})

我在哪里存储密钥和证书文件?它应该与下载的电子应用程序一起捆绑吗?

如果可以在解压应用程序时读取密钥和证书,是否会损害安全性?

如果密钥和证书存储在电子包中,那么每个下载应用程序的人都将使用相同的密钥和证书,这不会危及安全性吗?

如果密钥和证书存储在电子包中,用户下载应用程序后如何更新证书(在服务器中更改时)?

我根据这个链接工作 https://github.com/nodejs/help/issues/253

如果有人能指出我正确的方向,那就太好了。

我们正面临 websocket 被一些用户阻塞,所以我们正在尝试使用 TLS 双工套接字。

【问题讨论】:

    标签: node.js ssl electron tls1.2


    【解决方案1】:

    在我的情况下,看起来我毕竟不需要客户端证书。似乎我可以使用身份验证令牌或用户名/密码进行身份验证。这是 TLS 提供完整套接字加密以防止中间人攻击的一种方式。

    如上例使用自签名证书,仅提供 CA 证书就足以使其适用于 POC 阶段。

    tls.connect(8000, {
     ca: fs.readFileSync('ca.crt')
    })
    

    以下材料帮助我得出结论:

    https://chat.stackoverflow.com/rooms/118168/discussion-between-castaglia-and-agm

    https://stackoverflow.com/a/8230650/5384225

    https://crypto.stackexchange.com/a/406/75660

    我仍然没有回答我最初提出的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      • 2010-11-12
      • 2011-06-10
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多