这种情况发生在sslStream.AuthenticateAsServer(serverCertificate, true, SslProtocols.Default, true);
调用中。
我在试着做客户认证。我控制客户端和服务器,通过sslstream都是c#。当我使用nodejs服务器时,它工作得非常完美。但由于某些原因,我无法让服务器端可靠地在c#中工作。显然,ssl身份验证需要等待客户端选择客户端证书,但显然这不是c# sslstream类的内置特性?在调用之前,我已经尝试过这样做了,但是调用时仍然会立即出错:
我不介意IE中的安全问题。这很好。我关心的是sslstream似乎根本不适用于这样一个基本的szenario。
来自wcf跟踪的错误:
System.Net错误:0: 7928 AppDomain#13869071::UnhandledExceptionHandler中的异常-身份验证失败,因为远程方关闭了传输流。在System.Net.Security.SslState.ValidateCreateContext(Boolean isServer,String targetHost,SslProtocols enabledSslProtocols,X509Certificate serverCertificate,X509CertificateCollection clientCertificates,Boolean,Boolean,Boolean ) at System.Net.Security.SslStream.AuthenticateAsServer(X509Certificate serverCertificate,Boolean,SslProtocols enabledSslProtocols,Boolean )
发布于 2015-09-05 10:55:45
添加下面的代码帮助我克服了这个问题(我正在运行.NET 4.5.1中的应用程序)。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;
https://stackoverflow.com/questions/23339677
复制相似问题