使用带有SSL的ODBC(5.1)进行MySQL连接

Pet*_*nee 5 mysql ssl odbc mysql-management ssl-certificate

我们有一个客户端应用程序通过ODBC连接器连接到我们的在线MySQL数据库(5.1.44-community-log)(该服务器是托管*专用网络服务器).这非常好用.但是,我无法使用SSL工作.这是我到目前为止所做的:

1. MySQL服务器

我有服务器管理器*使用SSL设置MySQL,这是'证明':

mysql> SHOW VARIABLES LIKE '%ssl%';
Run Code Online (Sandbox Code Playgroud)

结果是这个回应:

+---------------+---------------------------------+
| Variable_name | Value                           |
+---------------+---------------------------------+
| have_openssl  | YES                             |
| have_ssl      | YES                             |
| ssl_ca        | /***/mysql-cert/ca-cert.pem     |
| ssl_capath    |                                 |
| ssl_cert      | /***/mysql-cert/server-cert.pem |
| ssl_cipher    |                                 |
| ssl_key       | /***/mysql-cert/server-key.pem  |
+---------------+---------------------------------+
Run Code Online (Sandbox Code Playgroud)

问题:服务器配置正确吗?我猜它是......

2.证书

我已经购买了真正的证书(通过我的服务器管理器).它们位于上面显示的目录中.我还从该目录下载了client-cert.pem,client-key.pem和ca-cert.pem.

3.具有REQUIRE [SSL | X509]的MySQL用户

我创建了一个新用户,然后使用SSL从任何位置(用于测试)授予它访问权限:

GRANT USAGE ON *.* TO 'somevaliduser'@'%' IDENTIFIED BY PASSWORD 'somevalidpass' REQUIRE X509 
Run Code Online (Sandbox Code Playgroud)

4. ODBC客户端

我(刚下载并安装):mysql-connector-odbc-5.1.8-winx64.msi(64位)因为我的机器是64位Windows 7机器(所以这不是什么错误).

我创建了一个像这样配置它的用户DSN(没有在选项卡上设置选项),这表明它成功连接到服务器(但不使用 - 也没有请求这样做 - SSL)(使用一些没有的有效用户)需要SSL):

不使用SSL连接MySQL服务器

所以连接能够建立,现在尝试使用SSL.

这是这样配置的,就像我在MySQL.com上看到的那样.所以我不是100%确定选项设置是正确的.

使用SSL连接MySQL服务器

如您所见,它会导致错误HY000.打开跟踪(在ODBC配置中)也会显示此错误.

任何人都可以给我一个如何使这项工作的提示?即使你只知道解决方案的一部分?

Pet*_*nee 4

我解决了这个问题。因为我一次尝试了几件事,所以我不知道到底是怎么回事:

  1. 我已经让服务器管理器重新创建了证书:我购买了一些证书,但发现这些证书不能用于对连接进行 SSL 加密。所以现在我使用 OpenSSL 证书。我让他们用 4) Create your client .... server 重新创建证书。它们必须是独一无二的。正如这里提到的)记住。
  2. 我想“验证 SSL 证书”复选框仅在您购买证书时适用,并且第三方服务应检查证书的有效性。取消选中该框!
  3. 只需填写以下字段:
    • 'SSL 密钥' (c:\path_to\client-key.pem)
    • 'SSL 证书' (c:\path_to\client-cert.pem)
    • 'SSL 证书颁发机构' (c:\path_to\ca-cert.pem)

请注意:

  1. 端口仍然相同(对我来说)。
  2. 正如 Michal Niklas 提议的那样,日志没有显示任何有用的信息。
  3. 我已打开“使用压缩”,据说可以提高性能。