【发布时间】:2011-05-04 08:17:13
【问题描述】:
我们有一个客户端应用程序,它通过 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 机器(所以这不是问题所在)。
我已经创建了一个用户 DSN 像这样配置它(选项卡上没有设置选项),它显示它成功连接到服务器(但是没有使用 - 也没有请求这样做 - SSL)(使用一些有效的用户不需要 SSL):
所以连接能够建立,现在尝试使用 SSL。
这是这样配置的,就像我在 MySQL.com 上读到的一样。所以我不是 100% 确定选项集是正确的。
如您所见,它会导致错误HY000。打开跟踪(在 ODBC 配置中)也会显示此错误。
谁能给我一个关于如何完成这项工作的提示?即使您只知道解决方案的一部分?
【问题讨论】:
-
在两个屏幕上,您使用的是同一个端口。这个可以吗?你能在服务器端找到什么?有日志吗?
-
这两个问题都非常好!谢谢,我会尽快调查并报告。谢谢!
-
感谢 Michal 的回答。
-
这可要了我的命。谢谢您的确认。 openssl 1.0.1 似乎有一些问题
标签: mysql ssl odbc ssl-certificate mysql-management