本节介绍如何配置 X 插件以使用加密连接。有关更多背景信息,请参阅 第 8.3 节 “使用加密连接”。
为了支持配置加密连接,X 插件具有 mysqlx_ssl_
系统变量,这些变量的值可以与 MySQL 服务器使用的 xxx
ssl_
系统变量不同。例如,X 插件可以具有与 MySQL 服务器使用的 SSL 密钥、证书和证书颁发机构文件不同的文件。这些变量在 第 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 插件的服务器上,您可以选择通过仅设置 ssl_
变量来使 MySQL 协议和 X 协议连接共享相同的加密配置,也可以通过分别配置 xxx
ssl_
和 xxx
mysqlx_ssl_
变量来为 MySQL 协议和 X 协议连接配置单独的加密配置。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
子句来要求特定用户对 X 协议和 MySQL 协议连接使用加密。有关详细信息,请参阅 第 15.7.1.3 节 “CREATE USER 语句”。或者,要要求所有用户对 X 协议和 MySQL 协议连接使用加密,请启用 require_secure_transport
系统变量。有关其他信息,请参阅 将加密连接配置为强制。