19.4.1 通过 X 插件使用加密连接

本节说明如何配置 X 插件以使用加密的连接。有关更多背景信息,请参阅第 6.3 节“使用加密的连接”

为了启用对加密连接的配置支持,X 插件具有mysqlx_ssl_xxx系统变量,该变量可以具有与 MySQL Server 所使用的ssl_xxx系统变量不同的值。例如,X 插件可以具有与用于 MySQL Server 的文件不同的 SSL 密钥,证书和证书颁发机构文件。这些变量在第 19.4.2.2 节“ X 插件选项和系统变量”处描述。同样,X 插件具有其自己的Mysqlx_ssl_xxx状态变量,它们对应于 MySQL Server 加密连接Ssl_xxx状态变量。参见第 19.4.2.3 节“ X 插件状态变量”

在初始化时,X 插件确定其加密连接的配置,如下所示:

  • 如果所有mysqlx_ssl_xxx系统变量均具有默认值,则 X 插件将使用 MySQL Server ssl_xxx系统变量的值来配置加密连接。

  • 如果任何mysqlx_ssl_xxx变量具有非默认值,则 X 插件将使用其自己的系统变量的值来配置加密的连接。 (如果将任何mysqlx_ssl_xxx系统变量设置为不同于默认值的情况,就是这种情况.)

这意味着,在启用了 X 插件的服务器上,可以通过仅设置ssl_xxx变量来选择让 MySQL 协议和 X 协议连接共享相同的加密配置,或者通过配置 MySQL 协议和 X 协议连接来为 MySQL 协议和 X 协议连接设置单独的加密配置。 ssl_xxxmysqlx_ssl_xxx变量分开。

要使 MySQL 协议和 X 协议连接使用相同的加密配置,请仅在my.cnf中设置ssl_xxx系统变量:

[mysqld]
ssl_ca=ca.pem
ssl_cert=server-cert.pem
ssl_key=server-key.pem

要为 MySQL 协议和 X 协议连接分别配置加密,请在my.cnf中设置ssl_xxxmysqlx_ssl_xxx系统变量:

[mysqld]
ssl_ca=ca1.pem
ssl_cert=server-cert1.pem
ssl_key=server-key1.pem

mysqlx_ssl_ca=ca2.pem
mysqlx_ssl_cert=server-cert2.pem
mysqlx_ssl_key=server-key2.pem

有关配置连接加密支持的一般信息,请参阅第 6.3.1 节“配置 MySQL 以使用加密连接”。该讨论是针对 MySQL Server 编写的,但参数名称与 X Plugin 相似。 (X 插件mysqlx_ssl_xxx系统变量名称与 MySQL Server ssl_xxx系统变量名称相对应.)

决定 MySQL 协议连接允许的 TLS 版本的tls_version系统变量也适用于 X 协议连接。因此,两种连接的允许 TLS 版本都是相同的。

每个连接的加密是可选的,但是通过在创建用户的CREATE USER语句中包含适当的REQUIRE子句,可以要求特定用户对 X 协议和 MySQL 协议连接使用加密。有关详细信息,请参见第 13.7.1.2 节“ CREATE USER 语句”。或者,要要求所有用户对 X 协议和 MySQL 协议连接使用加密,请启用require_secure_transport系统变量。有关更多信息,请参见将加密连接配置为强制性