When using the MySQL communication stack
(group_replication_communication_stack=MYSQL
)
AND secure connections between members
(group_replication_ssl_mode
is not set to DISABLED
), the security
settings discussed in this section are applied not just to
distributed recovery connections, but to group communications
between members in general. See
Section 20.6.1, “Communication Stack for Connection Security Management”.
Whether the distributed recovery connection is made using the standard SQL client connection or a distributed recovery endpoint, to configure the connection securely, you can use Group Replication's dedicated distributed recovery SSL options. These options correspond to the server SSL options that are used for group communication connections, but they are only applied for distributed recovery connections. By default, distributed recovery connections do not use SSL, even if you activated SSL for group communication connections, and the server SSL options are not applied for distributed recovery connections. You must configure these connections separately.
If a remote cloning operation is used as part of distributed recovery, Group Replication automatically configures the clone plugin's SSL options to match your settings for the distributed recovery SSL options. (For details of how the clone plugin uses SSL, see Configuring an Encrypted Connection for Cloning.)
The distributed recovery SSL options are as follows:
group_replication_recovery_use_ssl
: Set toON
to make Group Replication use SSL for distributed recovery connections, including remote cloning operations and state transfer from a donor's binary log. If the server you connect to does not use the default configuration for this (see Section 8.3.1, “Configuring MySQL to Use Encrypted Connections”), use the other distributed recovery SSL options to determine which certificates and cipher suites to use.group_replication_recovery_ssl_ca
: The path name of the Certificate Authority (CA) file to use for distributed recovery connections. Group Replication automatically configures the clone SSL optionclone_ssl_ca
to match this.group_replication_recovery_ssl_capath
: The path name of a directory that contains trusted SSL certificate authority (CA) certificate files.group_replication_recovery_ssl_cert
: The path name of the SSL public key certificate file to use for distributed recovery connections. Group Replication automatically configures the clone SSL optionclone_ssl_cert
to match this.group_replication_recovery_ssl_key
: The path name of the SSL private key file to use for distributed recovery connections. Group Replication automatically configures the clone SSL optionclone_ssl_cert
to match this.group_replication_recovery_ssl_verify_server_cert
: Makes the distributed recovery connection check the server's Common Name value in the donor sent certificate. Setting this option toON
is the equivalent for distributed recovery connections of settingVERIFY_IDENTITY
for thegroup_replication_ssl_mode
option for group communication connections.group_replication_recovery_ssl_crl
: The path name of a file containing certificate revocation lists.group_replication_recovery_ssl_crlpath
: The path name of a directory containing certificate revocation lists.group_replication_recovery_ssl_cipher
: A list of permissible ciphers for connection encryption for the distributed recovery connection. Specify a list of one or more cipher names, separated by colons. For information about which encryption ciphers MySQL supports, see Section 8.3.2, “Encrypted Connection TLS Protocols and Ciphers”.group_replication_recovery_tls_version
: A comma-separated list of one or more permitted TLS protocols for connection encryption when this server instance is the client in the distributed recovery connection, that is, the joining member. The default for this system variable depends on the TLS protocol versions supported in the MySQL Server release. The group members involved in each distributed recovery connection as the client (joining member) and server (donor) negotiate the highest protocol version that they are both set up to support.group_replication_recovery_tls_ciphersuites
: A colon-separated list of one or more permitted ciphersuites when TLSv1.3 is used for connection encryption for the distributed recovery connection, and this server instance is the client in the distributed recovery connection, that is, the joining member. If this system variable is set toNULL
when TLSv1.3 is used (which is the default if you do not set the system variable), the ciphersuites that are enabled by default are allowed, as listed in Section 8.3.2, “Encrypted Connection TLS Protocols and Ciphers”. If this system variable is set to the empty string, no cipher suites are allowed, and TLSv1.3 is therefore not used.