2014-04-28 3 views
5

Dies geschieht über den sslStream.AuthenticateAsServer(serverCertificate, true, SslProtocols.Default, true); Anruf.Die Authentifizierung ist fehlgeschlagen, weil die Gegenstelle den Transportstrom geschlossen hat.

Ich versuche, Client-Authentifizierung zu tun. Ich kontrolliere sowohl Client als auch Server, beide sind C# via sslstream. Wenn ich einen Nodejs Server verwende, funktioniert es perfekt. Aber ich kann nicht die Server-Seite aus irgendeinem Grund zuverlässig in C# arbeiten. Natürlich muss die ssl-Authentifizierung darauf warten, dass der Client das Client-Zertifikat auswählt, aber anscheinend ist dies kein eingebautes Feature für die C# sslstream-Klasse. Ich habe bereits versucht, dies zu tun vor dem Aufruf, aber es immer noch sofort Fehler auf den Anruf aus:

enter image description here

ich nicht die Sicherheitsfrage in IE kümmern. Das ist gut. Mich beunruhigt die Tatsache, dass sslstream überhaupt nicht mit solch einem grundlegenden Szenario zu arbeiten scheint.

Fehler von wcf Spur:

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)

+0

, weil dieser sein kann, nicht sicher, wie zu lösen: Der Widerruf Funktion konnte Widerruf für das Zertifikat – Blub

+0

ok überprüfen, die es war, ich deaktiviert clr überprüfen. – Blub

+0

HM Nein, IE verursacht immer noch dieses Problem auf meiner Serverseite. Ich fügte hinzu, die wcf-Trace – Blub

Antwort

1

den Code unten Hinzufügen half mir, das Problem zu überwinden (ich die app in .NET 4.5.1 ausgeführt wird).

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11; 
Verwandte Themen