Spec-Zone.ru › MySQL Connectors 1.0

6.7.2 Использование сертификатов PFX в Connector/NET

.NET не предоставляет родной поддержки формата PEM. Вместо этого Windows включает хранилище сертификатов, предоставляющее платформозависимые сертификаты в формате PFX. В целях этого примера используйте тестовые клиентские сертификаты из репозитория сервера MySQL (./mysql-test/std_data). Сначала преобразуйте их в формат PFX. Этот формат также известен как PKCS#12.

Для выполнения шагов этого учебника по сертификатам PFX вам необходимо установить Open SSL. Его можно бесплатно загрузить для Microsoft Windows на сайте Shining Light Productions.

Создание файла сертификата для использования с клиентом .NET

  1. Из каталога server-repository-root/mysql-test/std_data выполните следующую команду.

    openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -certfile cacert.pem -out client.pfx
    
  2. Когда попросят ввести пароль для экспорта, введите пароль “pass”. Будет сгенерирован файл client.pfx. Этот файл используется в остальной части учебника.

Подключение к серверу с использованием файла сертификата

  1. Используйте файл client.pfx, созданный на предыдущем шаге, для аутентификации клиента. Следующий пример демонстрирует, как подключиться, используя параметры подключения SslMode, CertificateFile и CertificatePassword.

    using (MySqlConnection connection = new MySqlConnection(
      "database=test;user=sslclient;" +
      "CertificateFile=H:\\git\\mysql-trunk\\mysql-test\\std_data\\client.pfx;" +
      "CertificatePassword=pass;" +
      "SslMode=Required "))
    
    {
        connection.Open();
    }
    

    Путь к файлу сертификата необходимо изменить, чтобы он соответствовал вашей установке. При использовании сертификатов в формате PFX параметр подключения SslMode проверяет сертификаты для всех значений режима SSL, кроме Disabled или None (устаревший в Connector/NET 8.0.29).

Подключение к серверу с использованием сертификата из хранилища

  1. Первый шаг — импорт файла PFX, client.pfx, в личное хранилище. Дважды щелкните файл в проводнике Windows. Это запустит Мастер импорта сертификатов.

  2. Следуйте инструкциям мастера, и когда попросят ввести пароль для файла PFX, введите “pass”.

  3. Нажмите Готово, чтобы закрыть мастер и импортировать сертификат в личное хранилище.

Просмотр сертификатов в личном хранилище

  1. Запустите консоль управления Microsoft, введя mmc.exe в командной строке.

  2. Выберите Добавить/Удалить оснастку из меню Файл. Нажмите Добавить. Выберите Сертификаты из списка доступных оснасток.

  3. В диалоговом окне нажмите Добавить, а затем выберите вариант Моя учетная запись пользователя. Этот параметр используется для личных сертификатов.

  4. Нажмите Готово.

  5. Нажмите ОК, чтобы закрыть диалоговое окно «Добавить/Удалить оснастки».

  6. Теперь в левой панели консоли управления Microsoft отображается Сертификаты – Текущий пользователь. Разверните элемент дерева «Сертификаты – Текущий пользователь» и выберите Личные, Сертификаты. В правой панели отображается выданный MySQL сертификат, который был импортирован ранее. Дважды щелкните сертификат, чтобы отобразить его сведения.

  7. После импорта сертификата в личное хранилище вы можете использовать более лаконичную строку подключения для подключения к базе данных, как показано в следующем коде:

    using (MySqlConnection connection = new MySqlConnection(
       "database=test;user=sslclient;" +
       "Certificate Store Location=CurrentUser;" +
       "SslMode=Required"))
    
    {
       connection.Open();
    }
    

Параметр отпечатка сертификата

Если в вашем хранилище много сертификатов, и у многих одинаковый эмитент, это может вызвать путаницу и привести к использованию неправильного сертификата. Чтобы решить эту проблему, есть необязательный параметр отпечатка сертификата, который можно дополнительно указать в строке подключения. Как упоминалось ранее, вы можете дважды щелкнуть сертификат в консоли управления Microsoft, чтобы отобразить его сведения. При отображении диалогового окна сертификата перейдите на вкладку Сведения и прокрутите вниз, чтобы увидеть отпечаток. Отпечаток обычно представляет собой число, например, ‎47 94 36 00 9a 40 f3 01 7a 14 5c f8 47 9e 76 94 d7 aa de f0. Этот отпечаток можно использовать в строке подключения, как показано в следующем коде:

using (MySqlConnection connection = new MySqlConnection(
      "database=test;user=sslclient;" +
      "Certificate Store Location=CurrentUser;" +
      "Certificate Thumbprint=479436009a40f3017a145cf8479e7694d7aadef0;"+
      "SSL Mode=Required"))
{
    connection.Open();
}

Пробелы в параметре отпечатка необязательны, а значение не чувствительно к регистру.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-tutorials-ssl-pfx.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API