【问题标题】:VB.net : Can't connect to mysql (mariadb) with ssl enabledVB.net:无法连接到启用 ssl 的 mysql (mariadb)
【发布时间】:2021-07-27 06:28:06
【问题描述】:

我正在尝试将我的 Winform 应用程序(VB.net,带有 mysql 连接器 8.0.26 的 W10 计算机)连接到 Mariadb 数据库(在 Debian 10 上)并启用 ssl,但即使经过多次搜索,我没有找到解决方案。 不启用 ssl,应用运行良好,没有问题。

在同一台计算机上,我有 DBeaver,并且 ssl 连接与 db 可以正常工作。 (PEM证书)

我认为我的连接参数是错误的,但我找不到在哪里...

我从这里举了一个例子:https://www.connectionstrings.com/mysql-connector-net-mysqlconnection/ssl-with-a-file-based-certificate/

也许 .pfx 文件会导致问题?任何人都可以给我一个 PEM 证书的例子。

在我的应用程序中,错误是身份验证失败...

CertificateFile 路径是什么意思?我已经将 D:\client.pfx 存储在运行应用程序的计算机上,是吗?

stringCmd = "SELECT name FROM hosts WHERE state = '0' AND enabled = '1'"
stringConn = "server=xxx.xxx.xxx.xxx;user id=xxxxx;password=xxxxxxx;database=xxxxxxxxx;SSL Mode=Required;CertificateFile=D:\client.pfx;CertificatePassword=xxxxxxxxx"
myConn = New MySqlConnection(stringConn)
myCmd = New MySqlCommand(stringCmd, myConn)
myConn.Open()

Stack Trace

26/07 编辑:

我将证书存储在 Windows 证书存储中并使用了Certificate Store Location=CurrentUser;SslMode=Required

我还使用了另一个 MysqlConnector(在 Oracle Mysql Data Connector 之前): https://github.com/mysql-net/MySqlConnector

McAfee 似乎阻止了 PEM 证书。

现在它可以工作了,但是在看起来没问题之后启动第一个连接非常慢。我增加了mysql超时...

【问题讨论】:

  • 如果错误是验证失败,那么这不太可能是 SSL 问题。更有可能是用户/密码组合,可能是证书文件的密码。但是你应该有一个更完整的堆栈跟踪。
  • 如果没有 ssl 和相同的用户/密码,它可以工作,证书密码已经检查。
  • 您确定连接字符串正确吗?我希望 Uid、Pwd... 查看 here 的示例。
  • 不,我不确定连接字符串,是的,在您的示例中它并不完全相同,但我认为它是等效的,因为使用 SSL Mode=None,它可以正常工作。我想尝试使用 PEM 文件,但找到的所有示例也不起作用...
  • 转储完整的错误信息。必须有比这更多的细节。

标签: mysql vb.net ssl mariadb


【解决方案1】:

经过多次搜索,我找到了解决方案。我希望能帮助其他管理员。 现在,所有连接器都可以正常工作(Oracle 等)。

这是一个需要修改的 Windows 设置:

  1. 按 Win+R 打开“运行”对话框

  2. 键入“gpedit.msc”(不带引号)并按 Enter

  3. 在“本地组策略编辑器”中,展开“计算机配置”,展开“管理模板”,展开“系统”,展开“Internet通信管理”,然后点击“Internet通信设置”。

  4. 在详细信息面板中,双击“关闭自动根证书更新”,单击“启用”,然后单击“确定”。此更改将立即生效,无需重新启动。

【讨论】:

    猜你喜欢
    • 2020-10-18
    • 2018-04-04
    • 1970-01-01
    • 2015-09-29
    • 2015-10-13
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    相关资源
    最近更新 更多