我正在设计客户端服务器架构中的系统 - 基于TCP。需要服务器和服务器之间的所有消息。客户端应加密。所以我想在.NET Framework中使用SslStream
类。
从SslStream MSDN,我的理解是我们需要使用Client&服务器证书,以建立适当的渠道&通信。
我不想使用特定于特定计算机(客户端)或服务器的任何证书。我只是想在系统之间有一个共同的密钥。
是否有可能在没有证书的情况下使用SSL流?
答案 0 :(得分:5)
虽然TLS规范不要求,但使用.NET SslStream
实现要求服务器具有证书(及其关联的私钥)。这允许任何客户端确认它正在与它期望的服务器进行通信。可选地,还可以通过让客户端向服务器提供客户端证书来对客户端进行身份验证。因此,如果您想使用SslStream
,您至少需要为服务器创建证书,因为这是特定实现的工作方式。
如果您根本不想使用证书,那么还有其他选择。例如。如果您计划在Windows域中使用应用程序,并且客户端/服务器都是基于Windows的,则可以使用NegotiateStream
代替。这也支持加密/身份验证,但不使用证书,并且还允许您识别连接另一端的用户。