#### 18.6.3.2 Secure Socket Layer (SSL) Connections for Distributed Recovery

Important

 When using the MySQL communication stack ([`group_replication_communication_stack=MYSQL`](group-replication-options.html#sysvar_group_replication_communication_stack)) AND secure connections between members ([`group_replication_ssl_mode`](group-replication-options.html#sysvar_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.

 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](clone-plugin-remote.html#clone-plugin-remote-ssl).)

 The distributed recovery SSL options are as follows:

* [`group_replication_recovery_use_ssl`](group-replication-options.html#sysvar_group_replication_recovery_use_ssl): Set to `ON` to make Group Replication use SSL for distributed recovery connections, including remote cloning operations and state transfer from a donor's binary log. You can just set this option and none of the other distributed recovery SSL options, in which case the server automatically generates certificates to use for the connection, and uses the default cipher suites. If you want to configure the certificates and cipher suites for the connection, use the other distributed recovery SSL options to do this.

* [`group_replication_recovery_ssl_ca`](group-replication-options.html#sysvar_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 option [`clone_ssl_ca`](clone-plugin-options-variables.html#sysvar_clone_ssl_ca) to match this.

  [`group_replication_recovery_ssl_capath`](group-replication-options.html#sysvar_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`](group-replication-options.html#sysvar_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 option [`clone_ssl_cert`](clone-plugin-options-variables.html#sysvar_clone_ssl_cert) to match this.

* [`group_replication_recovery_ssl_key`](group-replication-options.html#sysvar_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 option [`clone_ssl_cert`](clone-plugin-options-variables.html#sysvar_clone_ssl_cert) to match this.

* [`group_replication_recovery_ssl_verify_server_cert`](group-replication-options.html#sysvar_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 to `ON` is the equivalent for distributed recovery connections of setting `VERIFY_IDENTITY` for the [`group_replication_ssl_mode`](group-replication-options.html#sysvar_group_replication_ssl_mode) option for group communication connections.

* [`group_replication_recovery_ssl_crl`](group-replication-options.html#sysvar_group_replication_recovery_ssl_crl): The path name of a file containing certificate revocation lists.

* [`group_replication_recovery_ssl_crlpath`](group-replication-options.html#sysvar_group_replication_recovery_ssl_crlpath): The path name of a directory containing certificate revocation lists.

* [`group_replication_recovery_ssl_cipher`](group-replication-options.html#sysvar_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 6.3.2, “Encrypted Connection TLS Protocols and Ciphers”](encrypted-connection-protocols-ciphers.html).

* [`group_replication_recovery_tls_version`](group-replication-options.html#sysvar_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. This system variable is available from MySQL 8.0.19.

* [`group_replication_recovery_tls_ciphersuites`](group-replication-options.html#sysvar_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 to `NULL` 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 6.3.2, “Encrypted Connection TLS Protocols and Ciphers”](encrypted-connection-protocols-ciphers.html). If this system variable is set to the empty string, no cipher suites are allowed, and TLSv1.3 is therefore not used. This system variable is available beginning with MySQL 8.0.19.

