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 机器(所以这不是问题所在)。
我已经创建了一个用户 DSN 像这样配置它(选项卡上没有设置选项),它显示它成功连接到服务器(但是没有使用 - 也没有请求这样做 - SSL)(使用一些不使用的有效用户)需要 SSL):
所以连接能够建立,现在尝试使用 SSL。
这是这样配置的,就像我在 MySQL.com 上读到的一样。所以我不是 100% 确定选项集是正确的。
如您所见,它会导致错误_HY000_。打开跟踪(在 ODBC 配置中)也会显示此错误。
谁能给我一个关于如何完成这项工作的提示?即使您只知道解决方案的一部分?
解答
我解决了这个问题。因为我一次尝试了几件事,所以我不知道诀窍是什么:
- 我已经让服务器管理器重新创建证书:我买了一些,但我发现这些不能用于对连接进行 SSL 加密。所以现在我使用的是 OpenSSL 证书。我让他们使用_4重新创建证书)创建您的客户端....服务器。它们必须是唯一的。_(这里提到的)记住。
- 我猜“验证 SSL 证书”复选框仅在您购买证书时适用,第三方服务应检查证书的有效性。取消选中该框!
- 只填写以下字段:
-
SSL 密钥 (c:path_toclient-key.pem) SSL 证书 (c:path_toclient-cert.pem) SSL 证书颁发机构 (c:path_toca-cert.pem)
请注意:
1.端口还是一样的(对我来说)。
- 日志——正如迈克尔尼克拉斯提议的那样——没有显示任何有用的信息。
- 我打开了“使用压缩”,据说可以提高性能。