Spec-Zone.ru › MySQL 8.4

20.6.2 Обеспечение безопасности соединений групповой коммуникации с помощью Secure Socket Layer (SSL)

Для соединений групповой коммуникации между членами группы можно использовать защищенные сокеты.

Переменная системы Group Replication group_replication_ssl_mode используется для активации использования SSL для соединений групповой коммуникации и указания режима безопасности для соединений. Значение по умолчанию означает, что SSL не используется. Параметр имеет следующие возможные значения:

Таблица 20.1 Значения конфигурации group_replication_ssl_mode

Таблица 20.1 Значения конфигурации group_replication_ssl_mode
Значение

Описание

DISABLED

Установить незашифрованное соединение (по умолчанию).

REQUIRED

Установить защищенное соединение, если сервер поддерживает защищенные соединения.

VERIFY_CA

Как REQUIRED, но дополнительно проверяет сертификат сервера TLS по отношению к настроенным сертификатам Удостоверяющего центра (УЦ).

VERIFY_IDENTITY

Как VERIFY_CA, но дополнительно проверяет, соответствует ли сертификат сервера хосту, к которому пытается подключиться соединение.


Если используется SSL, способ настройки защищенного соединения зависит от того, используется ли для групповой коммуникации стек коммуникаций XCom или стек коммуникаций MySQL.

При использовании стека коммуникаций XCom (group_replication_communication_stack=XCOM): Остальная часть конфигурации для соединений групповой коммуникации Group Replication берется из конфигурации SSL сервера. Дополнительную информацию о параметрах настройки SSL сервера см. в разделе Параметры командной строки для защищенных соединений. Параметры SSL сервера, которые применяются к соединениям групповой коммуникации Group Replication, следующие:

Таблица 20.2 Параметры SSL

Таблица 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.

END_OF_DOCUMENT_MARKER

Соединения, созданные между присоединяющимся членом и существующим членом для распределенного восстановления, не покрываются параметрами, описанными выше. Эти соединения используют выделенные параметры 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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/group-replication-secure-socket-layer-support-ssl.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API