Подключитесь к базе данных MySQL, используя ssl-сертификаты в C # Dotnet Core 3 - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь подключиться к удаленной базе данных Mysql, используя SSL. Реализация в 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.");
    }
}

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Итак, я понял это. Очевидно, Connector / Net не работает с файлами сертификатов .pem из-за некоторой ошибки. Поэтому решение этой проблемы заключается в том, что нам нужно преобразовать .pem в .pfx следующим образом:

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

Вот откуда я взял это https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl-pfx.html

0 голосов
/ 03 октября 2019

Существует известная ошибка в Oracle Connector / NET (она же MySql.Data), когда дело доходит до обработки PEM: ошибка 95436 .

Попробуйте переключиться на MySqlConnector ( NuGet ). Он имеет тот же API, что и Connector / NET, поэтому он должен быть заменой, но имеет лучшую обработку файлов PEM и лучшую поддержку .NET Core.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...