Строка соединения C# для подключения к AWS RDS MySQL через соединение SSL

Согласно документации AWS RDS, AWS RDS MySQL поставляется с сертификатом SSL, а открытый ключ находится в файле с именем "rds-комбинированный-ca-bundle.pem", который можно загрузить с веб-сайта AWS.

Я также видел документацию от MySQL, что это то, как вы создаете клиентское соединение SSL в C# (.NET):

using (MySqlConnection connection = new MySqlConnection("database=test;user=sslclient;CertificateFile=H:\\...\\client.pfx;CertificatePassword=pass;SSL Mode=Required"))
{
    connection.Open();
}

Но как преобразовать этот "rds-комбинированный-ca-bundle.pem" в этот "client.pfx"?

1 ответ

Сертификат клиента не совпадает с сертификатом CA Bundle. Пакет CA используется для проверки того, что сертификат удаленного сервера является доверенным. Вы делаете это в Windows, добавляя CA в хранилище сертификатов. Тем не менее, когда вы указываете SSL Mode=Required, MySql Client игнорирует проверку сертификата, поэтому нет необходимости даже использовать CA PEM File.

Если вы хотите, чтобы клиент.Net MySql проверял сертификат, необходимо установить SSL Mode = VerifyCA или VerifyFull.

Чтобы импортировать PEM CA в хранилище сертификатов.

Откройте MMC и перейдите к оснастке "Сертификаты". Откройте Сертификаты (локальный компьютер), дважды щелкните узел Доверенные корневые центры сертификации.
Щелкните правой кнопкой мыши Сертификаты, выберите все задачи - > Импорт...

Вот пост с дополнительной информацией о параметрах SSL MySQL .Net

Другие вопросы по тегам