5.3.5 SSL 向导(证书)

此向导帮助为 MySQL 客户端和 MySQL 服务器创建 SSL 证书。向导使用证书更新 MySQL Workbench 中的连接。此向导需要 OpenSSL 来创建证书。还生成了一个使用生成的证书 的示例 MySQL 配置文件 ( my.cnf/ )。my.ini

笔记

OpenSSL 二进制文件应该在系统的 PATH 中。

从MySQL 服务器连接的SSL选项卡 启动 SSL 向导。在 MySQL 连接编辑器中找到此选项卡。点击SSL Wizard执行向导,如下图所示。

图 5.17 SSL 向导:启动

内容在周围的文字中描述。

阅读欢迎屏幕上的信息文本(如下图所示),然后单击“下一步”

图 5.18 SSL 向导:欢迎

内容在周围的文字中描述。

检查适用的选项。下图显示了可用选项的示例。

  • 使用默认参数:选中此项以跳过输入可选属性,例如国家、州、组织等。默认情况下,这些字段为空。

  • Generate new certificates and self-signed keys:选中此项以生成新文件,否则使用现有文件。如果您已经生成 SSL 证书但忘记了文件所在的位置或如何配置它们,则可以禁用此功能。

  • 更新连接:使用生成的证书信息更新定义的 MySQL 连接(在 MySQL Workbench 中)。

图 5.19 SSL 向导:选项

内容在周围的文字中描述。

结果页面描述生成的文件,并提供您必须执行以完成操作的要求。例如,您必须手动编辑 MySQL 配置文件(my.inimy.cnf)并定义 SSL 选项。

下图显示了一个示例结果屏幕。考虑让这个屏幕保持打开状态,并在复制文件并更改 MySQL 配置文件以启用 SSL 连接后将其关闭。该向导不会为您执行这些操作。

图 5.20 SSL 向导:结果

内容在周围的文字中描述。

下面是使用生成的 SSL 文件设置 SSL 连接的示例过程。调整你的路径,因为它们会有所不同。

  1. 创建一个目录来存储证书文件。在这个简单的示例中,MySQL Workbench 安装在与 MySQL 服务器相同的主机上,我们在C:\certs系统上创建了“”。

  2. 将结果复制并粘贴到新的(临时)文件中,但将 <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”。

  3. 打开 MySQL 服务器配置文件。在这个例子中,它的位置是“ C:\ProgramData\MySQL\MySQL Server 5.7\my.ini”。

    笔记

    配置文件的位置取决于 MySQL 服务器的安装方式。连接编辑器定义并显示其位置,MySQL Workbench 中的选项文件页面也是如此。

  4. 在该部分下添加客户端证书信息 [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
  5. 在 SSL 选项卡下更新 MySQL 连接中 SSL 客户端证书的路径。更新路径有3种。

  6. 重新启动 MySQL 服务器。在日志中,您应该会看到类似“警告 CA 证书 C:\certs\ca-cert.pem是自签名的”的内容。

  7. 在 MySQL 连接编辑器中,单击测试连接应确认您的 SSL 连接。

此外,考虑将使用 SSL设置为“必需”。或者,如果您遇到问题,请在调试问题时将其设置为“如果可用”。