使用 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 的选项的更多信息,请参阅 加密连接的命令选项。配置组复制的选项如下表所示。
表 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。
group_replication_ssl_mode
- 指定组复制成员之间连接的安全状态。
表 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 通信
。