在应用程序配置中指定 ssl ca 和密钥 c# mysql 连接字符串

specify ssl ca and key in app config c# mysql connection string

如何在 app.config 连接字符串中指定 entity framework mysql 使用的 sslca 文件。

我的连接字符串目前看起来像这样;

<connectionStrings>
<add name="Model" connectionString="server=localhost;user id=username;password=*****;persistsecurityinfo=True;database=database_name;CharSet=utf8;SslMode=VerifyCA;CertificateFile=client-bundle.pfx;CertificatePassword=******;" providerName="MySql.Data.MySqlClient" />
  </connectionStrings>

当我在连接字符串中使用 SslCa=ca.pem 时出现关键字无法识别错误。

那么如何指定要使用的ca文件呢?

Oracle MySQL Connector/NET 不支持混合 PEM 和 PFX 文件。具体来说,根据 bug 95526SslCa 被视为 CertificateFile 的别名,因此您不能同时使用两者。

我通常建议切换到 MySqlConnector,它支持同时使用 SslCaCertificateFile,但它不支持 EF6(仅 EF Core)。

相反,您必须删除 CertificateFile 选项,将您的证书转换为 PEM 格式,并改用 SslKeySslCert(以及 SslCa ).我认为这也会阻止您使用 CertificatePassword 选项(因为它仅适用于 PFX 文件)。