在using C#.NET Core 3中使用SSL证书连接到MySQL数据库

在using C#.NET Core 3中使用SSL证书连接到MySQL数据库,c#,mysql,visual-studio-code,.net-core-3.0,C#,Mysql,Visual Studio Code,.net Core 3.0,我正在尝试使用SSL连接到远程Mysql数据库。在C#和dotnet core 3中实现。我已经写了一些代码,但似乎并不成功。任何帮助都将不胜感激。多谢各位 using System.Data; using MySql.Data; using MySql.Data.MySqlClient; public class Tutorial1 { public static void Main() { MySqlConnection connection = new

我正在尝试使用SSL连接到远程Mysql数据库。在C#和dotnet core 3中实现。我已经写了一些代码,但似乎并不成功。任何帮助都将不胜感激。多谢各位

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.");
    }
}

在涉及PEM处理时,Oracle的Connector/NET(又名MySql.Data)中存在一个已知的错误:


尝试切换到()。它与Connector/NET具有相同的API,因此它应该是一个替代品,但它具有更好的PEM文件处理和对.NET Core的更好支持。

因此,我发现了这一点。显然,由于某些错误,Connector/Net不能与.pem证书文件一起工作。因此,解决这个问题的方法是,我们需要将.pem转换为.pfx,如下所示:

openssl pkcs12-export-in-client-cert.pem-inkey-client-key.pem-certfile cacert.pem-out-client.pfx


我就是从这里得到这个的

让我们看看你的错误!