Строка соединения 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