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 | Имя пути каталога, содержащего файлы сертификатов Удостоверяющих центров (УЦ) SSL в формате 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. Подробнее см.
MySQL 9.2 поддерживает протокол TLSv1.3, при условии, что сервер MySQL был скомпилирован с использованием OpenSSL 1.1.1. Сервер проверяет версию OpenSSL при запуске; если она ниже 1.1.1, TLSv1.3 удаляется из значений по умолчанию для всех переменных системы сервера, относящихся к версиям TLS, включая
group_replication_recovery_tls_version.MySQL 9.2 Group Replication поддерживает 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) для распределенного восстановления».
При использовании стека коммуникации MySQL (group_replication_communication_stack=MYSQL): Настройки безопасности для распределенного восстановления группы применяются к обычным коммуникациям между членами группы. См. Раздел 20.6.3, «Защита подключений распределенного восстановления», чтобы узнать, как настроить настройки безопасности.
© 2025 Oracle
Licensed under the GPLv2 License.