以下是我在Windows 10上为客户端/服务器控制台应用程序设置双向SSL身份验证的步骤:
- 有一个仅接受TLS 1.0连接的服务器监听器控制台应用程序。
- 客户端控制台应用程序使用SslStream.AuthenticateAsClient配置安全连接,并使用TLS 1.2连接。
- 我正在使用以下示例进行双向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 协议不同时,握手会失败?