这是在sslStream.AuthenticateAsServer(serverCertificate, true, SslProtocols.Default, true);
调用上发生的。
我想进行客户端验证。我控制客户端和服务器,它们都是使用c#通过sslstream实现的。当我使用nodejs服务器时,它完美地工作。但由于某种原因,我无法可靠地让c# 服务器端正常工作。显然,SSL身份验证需要等待客户端选择客户端证书,但显然c# sslstream类中没有内置此功能?我已经尝试在调用之前执行此操作,但它仍然立即报告错误:
我不介意IE中的安全问题。那没关系。我担心的是sslstream似乎根本无法处理这样一个基本场景。
wcf跟踪产生的错误:
System.Net Error: 0 : [7928] Exception in AppDomain #13869071::UnhandledExceptionHandler - Authentication failed because the remote party has closed the transport stream.. at System.Net.Security.SslState.ValidateCreateContext(Boolean isServer, String targetHost, SslProtocols enabledSslProtocols, X509Certificate serverCertificate, X509CertificateCollection clientCertificates, Boolean remoteCertRequired, Boolean checkCertRevocationStatus, Boolean checkCertName) at System.Net.Security.SslStream.AuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)