【问题标题】:specify ssl ca and key in app config c# mysql connection string在应用程序配置中指定 ssl ca 和密钥 c# mysql 连接字符串
【发布时间】:2020-09-16 15:54:08
【问题描述】:

如何在app.config连接字符串中指定实体框架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文件呢?

【问题讨论】:

    标签: c# mysql ssl entity-framework-6


    【解决方案1】:

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

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

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

    【讨论】:

    • 我尝试使用 pem 证书,但对于 SslCa,我仍然收到相同的关键字无法识别错误。 &lt;connectionStrings&gt; &lt;add name="Model" connectionString="server=localhost;user id=username;password=*******;persistsecurityinfo=True;database=database_name;CharSet=utf8;SslMode=VerifyCA;SslCa=ca.pem;SslKey=key.pem;SslCert=cert.pem" providerName="MySql.Data.MySqlClient" /&gt; &lt;/connectionStrings&gt;
    • @W.Mayo 您使用的是 MySql.Data 8.0.16 还是更高版本?在该版本中添加了 SslCa 选项。
    猜你喜欢
    • 2016-12-30
    • 2014-06-11
    • 2015-03-02
    • 2011-06-25
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多