Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Using Encrypted Connections with X Plugin

22.5.3 使用 X 插件的加密连接

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

要启用配置加密连接支持,X 插件具有 mysqlx_ssl_xxx 系统变量,这些变量的值可能不同于 MySQL 服务器的 ssl_xxx 系统变量。例如,X 插件可以具有不同的 SSL 密钥、证书和证书颁发机构文件,区别于 MySQL 服务器使用的文件。这些变量在 第 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 插件的服务器上,您可以选择让 MySQL 协议和 X 协议连接共享相同的加密配置,方法是仅设置 ssl_xxx 变量,或者让 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

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

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

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