MySQL 8.0 参考手册  / 第十八章 组复制  / 18.6 组复制安全  /  17.6.2 组复制安全套接字层 (SSL) 支持

17.6.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 的选项的更多信息,请参阅 加密连接的命令选项。配置组复制的选项如下表所示。

表 17.2 SSL 选项

服务器配置

插件配置说明

ssl_key

密钥文件的路径。用作客户端和服务器证书。

ssl_cert

证书文件的路径。用作客户端和服务器证书。

ssl_ca

具有受信任的 SSL 证书颁发机构的文件路径。

ssl_capath

包含受信任的 SSL 证书颁发机构的证书的目录路径。

ssl_crl

包含证书吊销列表的文件路径。

ssl_crlpath

包含已撤销证书列表的目录路径。

ssl_密码

通过连接加密数据时允许使用的密码。

tls_version

安全通信使用此版本及其协议。


这些选项是 Group Replication 依赖于其配置的 MySQL 服务器配置选项。此外,还有以下 Group Replication 特定选项可在插件本身上配置 SSL。

表 17.3 group_replication_ssl_mode 配置值

价值

描述

禁用

建立未加密的连接(默认)。

必需的

如果服务器支持安全连接,则建立安全连接。

验证_CA

与 REQUIRED 类似,但还根据配置的证书颁发机构 (CA) 证书验证服务器 TLS 证书。

验证身份

与 VERIFY_CA 类似,但另外验证服务器证书是否与尝试连接的主机匹配。


以下示例显示了一个示例 my.cnf 文件部分,用于在服务器上配置 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 通信 。