首页 > 解决方案 > Websockets 的跨服务器 SSL 证书

问题描述

我正在研究 Websockets (wss),我对他们使用 SSL 有点困惑。我希望你们中的一些人能够澄清一些让我最困惑的事情。


使用场景

假设我有一个带有 CA 签名证书的 HTTPS 安全网站。我想与在不使用相同域的外部服务器上运行的自定义应用程序实时通信(使用 WebSockets)(例如,该站点为www.mysite.com,服务器为www.notmysite.com)。

混乱的部分

  1. 当 WebSocket 客户端 (wss) 连接到远程服务器时,它使用什么 SSL 证书?它是原始网站,还是它试图连接的服务器?
  2. 在这种情况下,是否可以使用单域 SSL 证书建立连接 - 仅适用于我们知道私钥的网站 ( www.mysite.com ),因此我们应该能够解密加密数据?
  3. 如果问题没有。2 是错误的,包含两个 url 的多域证书会解决问题吗?

背景故事

我试图在 .NET C# 中创建一个 WebSocket 服务器。我设法让它与 HTTP 一起工作,但是当我在 HTTPS 安全网站上尝试代码时,我看到了一个我无法真正使用的加密文本。这就是为什么我购买了 SSL 证书并将其放在网站上,认为如果我有私钥,我可以解密数据并与客户端通信(基本上是问题 2)。虽然我只收到了关于密码学的不同错误。我试图解决这个问题一个多星期,我的进步和挫败感可以在我的其他问题中看到,例如: C# RSA 解密参数不正确AuthenticateAsServer() 错误 然后我发现我可能需要从不同的角度来看待它,这就是我提出这个理论的时候。我希望你们中的一些人能够通过解释为什么我做错了来结束我的痛苦。我很感激任何帮助。非常感谢。

标签: sslencryptionwebsocket

解决方案


我不能 100% 确定多域 SSL 证书是否解决了这个问题,因为我将它与使用预制库 (WebsocketsSharp) 结合使用,它与新的多域证书一起完美运行。在我看来,如果您想在两个不同的服务器(网站和服务器或两个服务器)之间进行通信,则需要多域证书。我希望我能省去一些未来的头痛。


推荐阅读