此向导可帮助创建用于 MySQL 客户端和 MySQL 服务器的 SSL 证书。MySQL Workbench 中的连接将通过向导更新证书。此向导需要 OpenSSL 来创建证书。还会生成一个示例 MySQL 配置文件(my.cnf
/ my.ini
),它将使用生成的证书。
OpenSSL 二进制文件应位于系统的 PATH 中。
从 MySQL 服务器连接的 SSL 选项卡启动 SSL 向导。在 MySQL 连接编辑器中找到此选项卡。单击 执行向导,如下图所示。
阅读欢迎屏幕上的信息文本(如下图所示),然后单击
。选中适用的选项。下图显示了可用选项的示例。
使用默认参数:选中此选项以跳过输入可选属性,例如国家/地区、州、组织等。默认情况下,这些字段为空。
生成新的证书和自签名密钥:选中此选项以生成新文件,否则将使用现有文件。如果您已经生成了 SSL 证书,但忘记了文件的位置或如何配置它们,则可以禁用此选项。
更新连接:使用生成的证书信息更新已定义的 MySQL 连接(在 MySQL Workbench 中)。
结果页面描述了生成的文件,并提供了必须执行的操作才能完成操作的要求。例如,您必须手动编辑您的 MySQL 配置文件(my.ini
或 my.cnf
)并定义 SSL 选项。
下图显示了结果屏幕的示例。考虑将此屏幕保持打开状态,并在复制文件并更改 MySQL 配置文件以启用 SSL 连接后关闭它。向导不会为您执行这些操作。
这里有一个使用生成的 SSL 文件设置 SSL 连接的示例过程。请调整您的路径,因为它们将不同。
创建一个目录来存储证书文件。在这个简单的示例中,MySQL Workbench 安装在与 MySQL 服务器相同的主机上,我们在系统上创建了 "
C:\certs
"。-
将结果复制并粘贴到一个新的(临时)文件中,但将 <directory> 更改为我们创建的路径(
C:\certs
)。例如[client] ssl-ca=C:\certs\ca-cert.pem ssl-cert=C:\certs\client-cert.pem ssl-key=C:\certs\client-key.pem [mysqld] ssl-ca=C:\certs\ca-cert.pem ssl-cert=C:\certs\\server-cert.pem ssl-key=C:\certs\\server-key.pem
警告MySQL 将 "\s" 解释为空格,因此我们在它前面添加了一个额外的反斜杠来转义它。这就是为什么您在上面的示例中看到 "\\server-key.pem",因为 MySQL 服务器会将 "\server-key.pem" 解释为 " erver-key.pem"。
-
打开 MySQL 服务器配置文件。在此示例中,其位置为 "
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
"。注意配置文件的位置取决于 MySQL 服务器的安装方式。连接编辑器会定义并显示其位置,MySQL Workbench 中的 选项文件 页面也会显示其位置。
-
在
[client]
部分下添加客户端证书信息[client] ssl-ca=C:\certs\ca-cert.pem ssl-cert=C:\certs\client-cert.pem ssl-key=C:\certs\client-key.pem
在
[mysqld]
部分下添加服务器证书信息[mysqld] ssl-ca=C:\certs\ca-cert.pem ssl-cert=C:\certs\\server-cert.pem ssl-key=C:\certs\\server-key.pem
在 SSL 选项卡下,更新 MySQL 连接中的 SSL 客户端证书路径。有三个路径需要更新。
重新启动 MySQL 服务器。在日志中,您应该看到类似 "Warning CA certificate
C:\certs\ca-cert.pem
is self signed." 的内容。在 MySQL 连接编辑器中,单击
应该会确认您的 SSL 连接。
此外,请考虑将 使用 SSL 设置为 "必需"。或者,如果您遇到问题,请将其设置为 "如果可用" 以便调试问题。