Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Authentication failed because remote party has closed the transport stream

I am developing a TCP client to connect OpenSSL server with the certificate authentication. I have using .crt and .key files shared by server team. These certificates are generated by OpenSSL commands.

I am using SslStream object to authenticate the Tcp client by calling SslStream.AuthenticateAsClient method by passing server IP, SslProtocols.Ssl3 and X509CertificateCollection.

I am getting the following error:

Authentication failed because the remote party has closed the transport stream

like image 624
Odelu Avatar asked Jun 05 '15 10:06

Odelu


1 Answers

I would advise against restricting the SecurityProtocol to TLS 1.1.

The recommended solution is to use

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; 

Another option is add the following Registry key:

Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319  Value: SchUseStrongCrypto  

It is worth noting that .NET 4.6 will use the correct protocol by default and does not require either solution.

like image 73
GuiSim Avatar answered Oct 22 '22 16:10

GuiSim