本节解释如何配置 X 插件以使用加密连接。有关更多背景信息,请参阅 第 8.3 节,“使用加密连接”。
要启用配置加密连接支持,X 插件具有 mysqlx_ssl_
系统变量,这些变量的值可能不同于 MySQL 服务器的 xxx
ssl_
系统变量。例如,X 插件可以具有不同的 SSL 密钥、证书和证书颁发机构文件,区别于 MySQL 服务器使用的文件。这些变量在 第 22.5.6.2 节,“X 插件选项和系统变量” 中进行了描述。类似地,X 插件具有其自己的 xxx
Mysqlx_ssl_
状态变量,相应于 MySQL 服务器的加密连接 xxx
Ssl_
状态变量。请参阅 第 22.5.6.3 节,“X 插件状态变量”。xxx
在初始化时,X 插件根据以下方式确定其 TLS 上下文以用于加密连接:
-
如果所有
mysqlx_ssl_
系统变量具有默认值,X 插件将使用与 MySQL 服务器主连接接口相同的 TLS 上下文,该上下文由xxx
ssl_
系统变量的值确定。xxx
-
如果任何
mysqlx_ssl_
变量具有非默认值,X 插件将使用其自己的系统变量定义的 TLS 上下文。(这是在任何xxx
mysqlx_ssl_
系统变量被设置为不同于其默认值时的情况。)xxx
这意味着,在启用了 X 插件的服务器上,您可以选择让 MySQL 协议和 X 协议连接共享相同的加密配置,方法是仅设置 ssl_
变量,或者让 MySQL 协议和 X 协议连接具有单独的加密配置,方法是分别配置 xxx
ssl_
和 xxx
mysqlx_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_
和 xxx
mysqlx_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_
系统变量名称对应于 MySQL 服务器的 xxx
ssl_
系统变量名称。)xxx
确定 MySQL 协议连接的 TLS 版本的 tls_version
系统变量也适用于 X 协议连接。因此,两种类型连接的允许 TLS 版本相同。
每个连接的加密是可选的,但可以通过在创建用户的 CREATE USER
语句中包含适当的 REQUIRE
子句来要求特定用户使用加密连接。有关详细信息,请参阅 第 15.7.1.3 节,“CREATE USER 语句”。或者,要要求所有用户使用加密连接,可以启用 require_secure_transport
系统变量。有关更多信息,请参阅 配置加密连接作为强制。