我正在尝试使用SSL连接到远程Mysql数据库。这个实现是在C#和dotnet core3中实现的。我写了一些代码,但似乎并不成功。任何帮助都将不胜感激。谢谢。
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
public class Tutorial1
{
public static void Main()
{
MySqlConnection connection = new MySqlConnection( "database=your_databasename;user=your_username;" + "SslMode=VerifyFull;" + "SslCa=server-ca.pem;" + "SslCert=client-cert.pem;" +"SslKey=client-key.pem;");
try
{
Console.WriteLine("Connecting to MySQL...");
connection.Open();
// Perform database operations
Console.WriteLine("Connected to Dev DB");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
connection.Close();
Console.WriteLine("Done.");
}
}发布于 2019-10-04 22:21:16
所以,我想通了。显然,连接器/网络不能与.pem证书文件一起工作,因为一些错误。因此,解决方案是我们需要将.pem转换为.pfx,如下所示:
openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -certfile cacert.pem -out client.pfx
这就是我从https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl-pfx.html得到这个的地方
发布于 2019-10-03 12:09:22
当涉及到PEM处理时,Oracle的Connector/NET (又称MySql.Data)中有一个已知的bug:bug 95436。
尝试切换到MySqlConnector (NuGet)。它具有与连接器/网络相同的应用程序接口,因此它应该是一个插入式替代品,但具有更好的PEM文件处理能力和对.NET核心的更好支持。
https://stackoverflow.com/questions/58208957
复制相似问题