文档主页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  使用 X 插件的加密连接

22.5.3 使用 X 插件的加密连接

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

为了能够配置对加密连接的支持,X 插件具有 mysqlx_ssl_xxx 系统变量,这些变量可以具有与 MySQL 服务器一起使用的 ssl_xxx 系统变量不同的值。例如,X 插件可以具有与 MySQL 服务器使用的 SSL 密钥、证书和证书颁发机构文件不同的文件。这些变量在 第 22.5.6.2 节“X 插件选项和系统变量” 中进行了描述。类似地,X 插件具有自己的 Mysqlx_ssl_xxx 状态变量,这些变量对应于 MySQL 服务器加密连接 Ssl_xxx 状态变量。请参阅 第 22.5.6.3 节“X 插件状态变量”

在初始化时,X 插件按如下方式确定其用于加密连接的 TLS 上下文

  • 如果所有 mysqlx_ssl_xxx 系统变量都具有其默认值,则 X 插件使用与 MySQL 服务器主连接接口相同的 TLS 上下文,该上下文由 ssl_xxx 系统变量的值确定。

  • 如果任何 mysqlx_ssl_xxx 变量具有非默认值,则 X 插件使用由其自身系统变量的值定义的 TLS 上下文。(如果任何 mysqlx_ssl_xxx 系统变量设置为与其默认值不同的值,则会出现这种情况。)

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

要使 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

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

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

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