1
votes

I am trying to connect to mysql from a c# app using ssl. the following is my connection string:

 server = "xxx.xxx.xxx.xxx";
        database = "sqlserver";
        uid = "sqlserver";
        password = "password";
        cert_file = "client-cert.pfx";      
        string connectionString;
        connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + "; CertificateFile=" + cert_file + "; CertificatePassword=admin; SslMode=Required";

this is the error:

System.IO.IOException: Received an unexpected EOF or 0 bytes from the transport stream. at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at MySql.Data.MySqlClient.NativeDriver.StartSSL() at MySql.Data.MySqlClient.NativeDriver.Open() at MySql.Data.MySqlClient.Driver.Open() at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() at MySql.Data.MySqlClient.MySqlPool.GetConnection() at MySql.Data.MySqlClient.MySqlConnection.Open() at

I thought the problem was my file but now i know it is not... so i am lost

1
Does the ssl certificate specify a hostname pattern?Davin Tryon
probably this issue - limilabs.com/blog/…Petesh

1 Answers

0
votes
server = "xxx.xxx.xxx.xxx";

Most of the time, SSL certificates define a hostname pattern (e.g. *.google.com). During the SSL authentication, the hostname is verified as being from the correct domain. Using the IP address for the server will cause this check to fail.

I would try to set the hostname as server and see if you get different results.