gpt4 book ai didi

c# - 客户端和服务器无法通信,因为它们不具备通用算法,C# SslStream

转载 作者:可可西里 更新时间:2023-11-01 09:28:10 42 4
gpt4 key购买 nike

以下是我在 Windows 10 上为客户端/服务器控制台应用程序进行相互 SSL 身份验证的设置:

  1. 有一个服务器监听器控制台应用程序只接受 TLS 1.0 连接。
  2. 客户端控制台应用程序使用 SslStream.AuthenticateAsClient 配置安全连接并使用 TLS 1.2 连接。
  3. 我使用以下示例进行相互 SSL 身份验证: http://www.codeproject.com/Articles/326574/An-Introduction-to-Mutual-SSL-Authentication

服务器代码:

sslStream.AuthenticateAsServer(certificate, true, SslProtocols.Tls, true);

客户端代码:

sslStream.AuthenticateAsClient(hostName, certificates, SslProtocols.Tls12, true);

错误:

异常:对 SSPI 的调用失败,请参阅内部异常。

内部异常:客户端和服务器无法通信,因为它们不具备通用算法

问题:

当我将客户端和服务器中的 SslProtocols 更改为相同时,即 TLS 1.0,SSL 握手成功。为什么客户端和服务端的 SSL 协议(protocol)不同,握手会失败?

最佳答案

协议(protocol)必须相同。您必须在服务器和客户端之间“协商”一个通用协议(protocol),否则他们无法使用同一种语言。 SslProtocols 枚举被标记为 [Flags] 以便您可以指定多个协议(protocol),例如SslProtocols.Tls | SslProtocols.Tls12

关于c# - 客户端和服务器无法通信,因为它们不具备通用算法,C# SslStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38236302/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com