20.6.2 Обеспечение безопасности соединений групповой коммуникации с помощью Secure Socket Layer (SSL)
Для соединений групповой коммуникации между членами группы можно использовать защищенные сокеты.
Переменная системы Group Replication group_replication_ssl_mode используется для активации использования SSL для соединений групповой коммуникации и указания режима безопасности для соединений. Значение по умолчанию означает, что SSL не используется. Параметр имеет следующие возможные значения:
Таблица 20.1 Значения конфигурации group_replication_ssl_mode
| Значение | Описание |
|---|---|
DISABLED | Установить незашифрованное соединение (по умолчанию). |
REQUIRED | Установить защищенное соединение, если сервер поддерживает защищенные соединения. |
VERIFY_CA | Как |
VERIFY_IDENTITY | Как |
Если используется SSL, способ настройки защищенного соединения зависит от того, используется ли для групповой коммуникации стек коммуникаций XCom или стек коммуникаций MySQL.
При использовании стека коммуникаций XCom (group_replication_communication_stack=XCOM): Остальная часть конфигурации для соединений групповой коммуникации Group Replication берется из конфигурации SSL сервера. Дополнительную информацию о параметрах настройки SSL сервера см. в разделе Параметры командной строки для защищенных соединений. Параметры SSL сервера, которые применяются к соединениям групповой коммуникации Group Replication, следующие:
Таблица 20.2 Параметры SSL
| Конфигурация сервера | Описание |
|---|---|
ssl_key | Имя пути файла закрытого ключа SSL в формате PEM. На стороне клиента это закрытый ключ клиента. На стороне сервера это закрытый ключ сервера. |
ssl_cert | Имя пути файла сертификата открытого ключа SSL в формате PEM. На стороне клиента это сертификат открытого ключа клиента. На стороне сервера это сертификат открытого ключа сервера. |
ssl_ca | Имя пути файла сертификата Удостоверяющего центра (УЦ) в формате PEM. |
ssl_capath | Имя пути каталога, содержащего файлы сертификатов Удостоверяющего центра (УЦ) в формате PEM. |
ssl_crl | Имя пути файла, содержащего списки отозванных сертификатов в формате PEM. |
ssl_crlpath | Имя пути каталога, содержащего файлы списков отозванных сертификатов в формате PEM. |
ssl_cipher | Список разрешенных шифров для защищенных соединений. |
tls_version | Список TLS-протоколов, разрешенных сервером для защищенных соединений. |
tls_ciphersuites | TLSv1.3 шифры, разрешенные сервером для защищенных соединений. |
Поддержка протоколов TLSv1 и TLSv1.1 соединений была удалена в MySQL 8.0. Клиенты MySQL, включая экземпляры сервера Group Replication, действующие как клиенты, не возвращают предупреждения пользователю, если используется устаревший протокол TLS. См. Удаление поддержки протоколов TLSv1 и TLSv1.1 для получения дополнительной информации.
MySQL 8.4 поддерживает протокол TLSv1.3, при условии, что MySQL Server был скомпилирован с использованием OpenSSL 1.1.1. Сервер проверяет версию OpenSSL при запуске; если она ниже 1.1.1, TLSv1.3 удаляется из значений по умолчанию для всех системных переменных сервера, относящихся к версиям TLS, включая
group_replication_recovery_tls_version.Group Replication MySQL 8.4 поддерживает TLSv1.3.
Используйте
group_replication_recovery_tls_versionиgroup_replication_recovery_tls_ciphersuitesдля настройки поддержки клиентом любых наборов шифров, включая только нестандартные шифры при необходимости.В списке TLS-протоколов, указанном в системной переменной
tls_version, убедитесь, что указанные версии являются смежными (например,TLSv1.2,TLSv1.3). Если в списке протоколов есть какие-либо пробелы (например, если вы указалиTLSv1,TLSv1.2, опуская TLS 1.1), Group Replication может быть не в состоянии установить соединения групповой коммуникации.
В группе репликации OpenSSL согласовывает использование самого высокого TLS-протокола, который поддерживается всеми участниками. Присоединяющийся член, настроенный на использование только TLSv1.3 (tls_version=TLSv1.3), не может присоединиться к группе репликации, где любой существующий член не поддерживает TLSv1.3, потому что члены группы в этом случае используют более низкую версию TLS-протокола. Для присоединения члена к группе необходимо настроить присоединяющегося члена на разрешение использования более низких версий TLS-протоколов, поддерживаемых существующими членами группы. И наоборот, если присоединяющийся член не поддерживает TLSv1.3, но все существующие члены группы поддерживают и используют эту версию для соединений друг с другом, член может присоединиться, если существующие члены группы уже разрешают использование подходящей более низкой версии TLS-протокола или если вы настроите их на это. В этом случае OpenSSL использует более низкую версию TLS-протокола для соединений каждого члена с присоединяющимся членом. Соединения каждого члена с другими существующими членами по-прежнему используют самую высокую доступную версию протокола, которую поддерживают оба члена.
Вы можете изменить системную переменную tls_version во время выполнения, чтобы изменить список разрешенных версий TLS-протоколов для сервера. Для Group Replication оператор ALTER INSTANCE RELOAD TLS, который перенастраивает контекст TLS сервера из текущих значений системных переменных, определяющих контекст, не изменяет контекст TLS для соединения групповой коммуникации Group Replication во время работы Group Replication. Чтобы применить перенастройку к этим соединениям, необходимо выполнить оператор STOP GROUP_REPLICATION, за которым следует START GROUP_REPLICATION, чтобы перезапустить Group Replication на узле или узлах, где вы изменили системную переменную tls_version. Аналогично, если вы хотите, чтобы все члены группы изменили использование более высокой или более низкой версии TLS-протокола, вы должны выполнить поэтапную перезагрузку Group Replication на узлах после изменения списка разрешенных версий TLS-протоколов, чтобы OpenSSL согласовал использование более высокой версии TLS-протокола по завершении поэтапной перезагрузки. Инструкции по изменению списка разрешенных версий TLS-протоколов во время выполнения см. в разделе разделе 8.3.2, «Протоколы и шифры TLS защищенных соединений» и Настройка и мониторинг конфигурации защищенных соединений на стороне сервера во время выполнения.
Следующий пример демонстрирует раздел из файла my.cnf, который настраивает SSL на сервере и активирует SSL для соединений групповой коммуникации Group Replication:
[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Оператор ALTER INSTANCE RELOAD TLS, который перенастраивает контекст TLS сервера из текущих значений системных переменных, определяющих контекст, не изменяет контекст TLS для соединений групповой коммуникации Group Replication во время работы Group Replication. Чтобы применить перенастройку к этим соединениям, необходимо выполнить оператор STOP GROUP_REPLICATION, за которым следует START GROUP_REPLICATION, чтобы перезапустить Group Replication.
Соединения, созданные между присоединяющимся членом и существующим членом для распределенного восстановления, не покрываются параметрами, описанными выше. Эти соединения используют выделенные параметры SSL распределенного восстановления Group Replication, описанные в Разделе 20.6.3.2, «Secure Socket Layer (SSL) Connections for Distributed Recovery».
При использовании стека коммуникаций MySQL (group_replication_communication_stack=MYSQL): Настройки безопасности для распределенного восстановления группы применяются к обычным коммуникациям между членами группы. См. Раздел 20.6.3, «Обеспечение безопасности соединений для распределенного восстановления» о том, как настроить параметры безопасности.
© 2025 Oracle
Licensed under the GPLv2 License.