MySQL 连接使用 ODBC (5.1) 和 SSL

问题:MySQL 连接使用 ODBC (5.1) 和 SSL

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

1.  MySQL 服务器

我已经让服务器管理器* 使用 SSL 设置 MySQL,这是“证明”:

mysql> SHOW VARIABLES LIKE '%ssl%';

结果是这个响应:

+---------------+---------------------------------+
| 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  |
+---------------+---------------------------------+

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

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 

4. ODBC 客户端

我已经(刚刚下载并)安装了:mysql-connector-odbc-5.1.8-winx64.msi(64 位),因为我的机器是 64 位 Windows 7 机器(所以这不是问题所在)。

扫描二维码关注公众号,回复: 14856761 查看本文章

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

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

这是这样配置的,就像我在 MySQL.com 上读到的一样。所以我不是 100% 确定选项集是正确的。

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

谁能给我一个关于如何完成这项工作的提示?即使您只知道解决方案的一部分?

解答

我解决了这个问题。因为我一次尝试了几件事,所以我不知道诀窍是什么:

  1. 我已经让服务器管理器重新创建证书:我买了一些,但我发现这些不能用于对连接进行 SSL 加密。所以现在我使用的是 OpenSSL 证书。我让他们使用_4重新创建证书)创建您的客户端....服务器。它们必须是唯一的。_(这里提到的)记住。

  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. 日志——没有显示任何有用的信息。
  3. 我打开了“使用压缩”,据说可以提高性能。

猜你喜欢

转载自blog.csdn.net/zhishifufei/article/details/128045762
今日推荐