17.5.2 组复制安全套接字层(SSL)支持

使用 SSL 保护组通信连接和恢复连接。以下各节说明如何配置连接。

为组复制恢复配置 SSL

通过常规的异步复制连接执行恢复。选择施主后,加入该组的服务器将构建异步复制连接。这都是自动的。

但是,在加入组的服务器连接到施主之前,必须已经创建了需要 SSL 连接的用户。通常,这是在预配置服务器加入组时设置的。

donor> SET SQL_LOG_BIN=0;
donor> CREATE USER 'rec_ssl_user'@'%' REQUIRE SSL;
donor> GRANT replication slave ON *.* TO 'rec_ssl_user'@'%';
donor> SET SQL_LOG_BIN=1;

假设已经在组中的所有服务器都设置了使用 SSL 的复制用户,则可以将加入组的服务器配置为在连接到供体时使用这些凭据。这是根据为组复制插件提供的 SSL 选项的值完成的。

new_member> SET GLOBAL group_replication_recovery_use_ssl=1;
new_member> SET GLOBAL group_replication_recovery_ssl_ca= '.../cacert.pem';
new_member> SET GLOBAL group_replication_recovery_ssl_cert= '.../client-cert.pem';
new_member> SET GLOBAL group_replication_recovery_ssl_key= '.../client-key.pem';

并通过配置恢复通道以使用需要 SSL 连接的用户的凭据。

new_member> CHANGE MASTER TO MASTER_USER="rec_ssl_user" FOR CHANNEL "group_replication_recovery";
new_member> START GROUP_REPLICATION;

为组通信配置 SSL

安全套接字可用于在组中的成员之间构建通信。此配置取决于服务器的 SSL 配置。因此,如果服务器配置了 SSL,则组复制插件也配置了 SSL。有关配置服务器 SSL 的选项的更多信息,请参阅加密连接的命令选项。下 table 显示了配置组复制的选项。

table17.2 SSL 选项

Server Configuration插件配置说明
ssl_key密钥文件的路径。用作 Client 端和服务器证书。
ssl_cert证书文件的路径。用作 Client 端和服务器证书。
ssl_ca具有受信任的 SSL 证书颁发机构的文件的路径。
ssl_capath包含受信任的 SSL 证书颁发机构的证书的目录路径。
ssl_crl包含证书吊销列 table 的文件的路径。
ssl_crlpath包含已撤销证书列 table 的目录路径。
ssl_cipher在通过连接加密数据时使用的允许密码。
tls_version安全通信将使用此版本及其协议。

这些选项是组复制所依赖的 MySQL Server 配置选项。此外,还有以下特定于组复制的选项,用于在插件本身上配置 SSL。

table17.3 group_replication_ssl_mode 配置值

ValueDescription
DISABLED构建未加密的连接(* default *)。
REQUIRED如果服务器支持安全连接,则构建安全连接。
VERIFY_CA与 REQUIRED 相似,但另外还要针对配置的证书颁发机构(CA)证书验证服务器 TLS 证书。
VERIFY_IDENTITY与 VERIFY_CA 类似,但还要验证服务器证书是否与尝试连接的主机匹配。

以下示例显示了一个示例 my.cnf 文件部分,该部分用于在服务器上配置 SSL 以及如何为组复制激活 SSL。

[mysqld]
ssl_ca = "cacert.pem"
ssl_capath = "/.../ca_directory"
ssl_cert = "server-cert.pem"
ssl_cipher = "DHE-RSA-AEs256-SHA"
ssl_crl = "crl-server-revoked.crl"
ssl_crlpath = "/.../crl_directory"
ssl_key = "server-key.pem"
group_replication_ssl_mode= REQUIRED

列出的唯一的特定于插件的配置选项是group_replication_ssl_mode。通过使用提供给服务器的ssl_*参数配置 SSL 框架,此选项可激活组成员之间的 SSL 通信。