安全套接字可以用于组通信组的成员之间的连接。复制系统变量group_replication_ssl_mode
用于激活使用SSL进行组通信连接和指定连接的安全模式。默认设置意味着不使用SSL。选择有以下可能的值:
表18.1 group_replication_ssl_mode配置值
价值 |
描述 |
---|---|
禁用 |
建立一个未加密的连接(默认)。 |
要求 |
建立一个安全连接如果服务器支持安全连接。 |
VERIFY_CA |
必需的,但另外验证服务器TLS证书根据配置的证书颁发机构(CA)证书。 |
VERIFY_IDENTITY |
像VERIFY_CA,但另外验证服务器证书匹配主机的连接尝试。 |
其余配置组复制的组通信连接来自服务器的SSL配置。更多信息在服务器的SSL配置的选项,看看加密连接的命令选项。服务器的SSL选项用于复制组的组通信连接如下:
表18.2 SSL选项
服务器配置 |
描述 |
---|---|
SSL私钥文件的路径名PEM格式。在客户端,这是客户端私钥。在服务器端,服务器私钥。 |
|
SSL公钥证书文件的路径名PEM格式。在客户端,这是客户机公钥证书。在服务器端,服务器公钥证书。 |
|
证书颁发机构(CA)的路径名PEM格式的证书文件。 |
|
目录的路径名,其中包含信任的SSL证书颁发机构(CA) PEM格式的证书文件。 |
|
文件的路径名包含PEM格式的证书撤销列表。 |
|
目录的路径名,其中包含证书撤销列表PEM格式的文件。 |
|
允许密码加密连接的列表。 |
|
TLS协议的服务器列表允许加密连接。 |
|
这对加密连接TLSv1.3密码套件服务器许可证。 |
支持TLSv1.3协议可用在MySQL 8.0.16 MySQL服务器,提供MySQL是编译使用OpenSSL 1.1.1或更高。支持从MySQL 8.0.18 TLSv1.3组复制。在MySQL 8.0.16和MySQL 8.0.17,如果服务器支持TLSv1.3,协议不支持的组通信引擎和不能被复制。
在TLS协议中指定的列表
tls_version
是连续的系统变量,确保指定的版本(例如,TLSv1、TLSv1.1 TLSv1.2
)。如果有缺口的列表中(例如,如果您指定的协议TLSv1, TLSv1.2
,省略TLS 1.1)组复制可能无法使组通信连接。在MySQL 8.0.18, TLSv1.3可以用于组复制分布式恢复连接,但是
group_replication_recovery_tls_version
和group_replication_recovery_tls_ciphersuites
系统变量并不是可用的。捐赠者服务器必须允许使用至少一个TLSv1.3密码套件,在缺省情况下是启用的,中列出部分再,“加密连接TLS协议和密码”。从MySQL 8.0.19,您可以使用选项来配置客户端支持任何选择的密码套件,只包括非默认密码套件。
在复制组,OpenSSL协商使用最高的TLS协议得到所有成员的支持。加入成员,被配置为只使用TLSv1.3 (tls_version = TLSv1.3
)不能加入一个复制组,不支持任何现有成员TLSv1.3,因为小组成员在这种情况下使用TLS协议版本较低。加入小组的成员,你必须配置加入成员也允许使用较低的TLS协议版本支持的现有的小组成员。相反,如果不支持TLSv1.3加入成员,但是现有的组织成员都做和正在使用这个版本相互连接,成员可以加入如果现有的成员已经允许使用一个合适的低TLS协议版本,或者如果你配置它们。在这种情况下,OpenSSL使用TLS协议版本较低的连接从每个成员加入会员。每个成员的连接到现有的其他成员继续使用最高可用协议成员的支持。
从MySQL 8.0.16,您可以更改tls_version
系统变量在运行时改变允许TLS协议版本的服务器列表。请注意,对于集团复制改变实例重载TLS
声明,重新配置服务器的TLS系统变量的上下文从当前值,定义了上下文,不会改变的TLS上下文组复制的组通信连接而组复制正在运行。应用这些连接的重新配置,您必须执行停止GROUP_REPLICATION
紧随其后的是开始GROUP_REPLICATION
重启组复制的成员或成员,你改变了tls_version
系统变量。同样的,如果你想让一群的所有成员改变使用TLS协议版本或高或低,你必须进行轧制后重新启动复制组的成员改变允许TLS协议版本的列表,以便OpenSSL协商使用TLS协议版本越高时,重启完成。说明变化的列表允许TLS协议版本在运行时,看到的部分再,“加密连接TLS协议和密码”和加密连接的服务器端运行时配置和监控。
下面的示例显示了一个部分的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
的改变实例重载TLS
声明,重新配置服务器的TLS系统变量的上下文从当前值,定义了上下文,不会改变的TLS上下文组复制的组通信连接而组复制正在运行。应用这些连接的重新配置,您必须执行停止GROUP_REPLICATION
紧随其后的是开始GROUP_REPLICATION
重新启动复制。
连接加入成员与现有成员为分布式恢复不受上述选项。这些连接使用复制的专用的分布式恢复SSL选项分组,中描述部分18.6.3.2”安全套接字层(SSL)连接分布式复苏”。