【发布时间】:2021-07-27 06:28:06
【问题描述】:
我正在尝试将我的 Winform 应用程序(VB.net,带有 mysql 连接器 8.0.26 的 W10 计算机)连接到 Mariadb 数据库(在 Debian 10 上)并启用 ssl,但即使经过多次搜索,我没有找到解决方案。 不启用 ssl,应用运行良好,没有问题。
在同一台计算机上,我有 DBeaver,并且 ssl 连接与 db 可以正常工作。 (PEM证书)
我认为我的连接参数是错误的,但我找不到在哪里...
也许 .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()
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 文件,但找到的所有示例也不起作用...
-
转储完整的错误信息。必须有比这更多的细节。