【问题标题】:Secure websocket (WSS) certificate signing安全 websocket (WSS) 证书签名
【发布时间】:2015-01-29 01:11:37
【问题描述】:

我有一个网站https://www.foo.com,在这个网站上我使用 websocket 连接到其他机器(运行我们的软件的机器的一些随机 IP 地址)。即我连接到在 ws://123.45.67:80 上运行的 websocket

问题是这个站点是通过 HTTPS 提供的,而我想要连接的 websocket 服务器也需要安全连接 (WSS) 并且不能与常规 websocket (WS) 一起使用。

问题是:如何签署将驻留在不在我的域中的每个 websocket 服务器上的证书?我可以使用来自主站点 https://www.foo.com 的证书为任意域上的 websocket 服务器签署 x509 证书吗?

我使用Fleck 作为 websocket 服务器

【问题讨论】:

    标签: .net ssl websocket ssl-certificate x509certificate


    【解决方案1】:

    虽然问题似乎已经解决了(根据问题被问到的时间),但我会添加一些链接,供偶然发现的人参考。


    1. 决定,你要使用哪个证书

      • 使用 foo.com 的证书
        如果您想使用与您的页面相同的证书,则必须将 IP 地址添加到证书中(询问颁发者如何实现这一点,因为这主要取决于他们的基础设施。

      • 获取新证书
        就像您获得了现有证书一样,但 with the IP address 您的 websocket 机器。

      • 生成新的自签名证书
        如果您想生成自签名证书(在所有浏览器中都会发出警告,并且如果不先手动信任它可能无法工作),只需 use OpenSSL to generate a self-signed certificate

    2. 将证书添加到 Fleck 如Fleck's Readme 中所述,您必须使用 wss:// 协议(使用 var server = new WebSocketServer("wss://[IPAddress]:[Port]");)并使用 @987654325 将 Fleck 指向您的证书(x509,具有公共和私有密钥) @

    如果 IP 地址频繁更改,这将非常复杂(如果不是不可能的话)。然后我建议使用代理监听(子)域并处理 https/wss。代理和 websocket 机器之间的连接应该在物理上(如直接连接)或通过 VPN 进行保护。


    我希望,我已经解决了您的问题,并且我的回答很清楚。如果没有,请随时评论我可以改进的地方。

    【讨论】:

      猜你喜欢
      • 2021-08-06
      • 2017-12-18
      • 2014-04-30
      • 1970-01-01
      • 2011-05-12
      • 2012-06-13
      • 2014-07-06
      • 2012-07-02
      • 1970-01-01
      相关资源
      最近更新 更多