5.3.5 SSL 向导 (证书)

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

注意

OpenSSL 二进制文件应位于系统的 PATH 中。

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

图 5.17 SSL 向导:启动

Content is described in the surrounding text.

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

图 5.18 SSL 向导:欢迎

Content is described in the surrounding text.

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

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

  • 生成新的证书和自签名密钥:选中此选项以生成新文件,否则将使用现有文件。如果您已经生成了 SSL 证书,但忘记了文件的位置或如何配置它们,则可以禁用此选项。

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

图 5.19 SSL 向导:选项

Content is described in the surrounding text.

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

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

图 5.20 SSL 向导:结果

Content is described in the surrounding text.

这里有一个使用生成的 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 客户端证书路径。有三个路径需要更新。

  6. 重新启动 MySQL 服务器。在日志中,您应该看到类似 "Warning CA certificate C:\certs\ca-cert.pem is self signed." 的内容。

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

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