16.3.8 Настройка репликации с использованием защищённых соединений
Для использования защищённого соединения при передаче бинарного лога, необходимого для репликации, оба сервера — источник и реплика — должны поддерживать защищённые сетевые соединения. Если любой из серверов не поддерживает защищённые соединения (потому что он не был скомпилирован или настроен для них), репликация через защищённое соединение невозможна.
Настройка защищённых соединений для репликации аналогична настройке для клиентских/серверных соединений. Вам необходимо получить (или создать) подходящий сертификат безопасности, который можно использовать на сервере-источнике, и аналогичный сертификат (от того же центра сертификации) на каждой реплике. Вам также необходимо получить соответствующие файлы ключей.
Дополнительную информацию о настройке сервера и клиента для защищённых соединений см. в разделе 6.3.1 «Настройка MySQL для использования защищённых соединений».
Чтобы включить защищённые соединения на сервере-источнике, необходимо создать или получить подходящие сертификат и файлы ключей, а затем добавить следующие параметры конфигурации в конфигурацию источника в разделе [mysqld] файла my.cnf источника, изменив имена файлов при необходимости:
[mysqld]
ssl_ca=cacert.pem
ssl_cert=server-cert.pem
ssl_key=server-key.pem
Пути к файлам могут быть относительными или абсолютными; рекомендуется всегда использовать полные пути для этой цели.
Параметры конфигурации следующие:
ssl_ca: Путь к файлу сертификата Центра сертификации (ЦС). (--ssl-capathаналогичен, но указывает путь к каталогу файлов сертификатов ЦС.)ssl_cert: Путь к файлу сертификата открытого ключа сервера. Этот сертификат может быть отправлен клиенту и проверен по сертификату ЦС, имеющемуся у клиента.ssl_key: Путь к файлу закрытого ключа сервера.
Чтобы включить защищённые соединения на реплике, используйте оператор CHANGE MASTER TO.
-
Для указания имени файла сертификата и файла закрытого ключа SSL реплики с помощью
CHANGE MASTER TO, добавьте соответствующие параметрыMASTER_SSL_, например так:xxx->
MASTER_SSL_CA = 'ca_file_name',->MASTER_SSL_CAPATH = 'ca_directory_name',->MASTER_SSL_CERT = 'cert_file_name',->MASTER_SSL_KEY = 'key_file_name',Эти параметры соответствуют параметрам
--ssl-с такими же именами, как описано в Командные параметры для защищённых соединений. Для того, чтобы эти параметры вступили в силу, необходимо также установитьxxxMASTER_SSL=1. Для соединения репликации, указание значения для любого изMASTER_SSL_CAилиMASTER_SSL_CAPATHсоответствует установке--ssl-mode=VERIFY_CA. Попытка подключения удаётся только в том случае, если найден действительный соответствующий сертификат Центра сертификации (ЦС) с использованием указанной информации. -
Для активации проверки идентификатора имени хоста добавьте параметр
MASTER_SSL_VERIFY_SERVER_CERT:->
MASTER_SSL_VERIFY_SERVER_CERT=1,Этот параметр соответствует параметру
--ssl-verify-server-cert, который устарел начиная с MySQL 5.7.11 и удалён в MySQL 8.0. Для соединения репликации, указаниеMASTER_SSL_VERIFY_SERVER_CERT=1соответствует установке--ssl-mode=VERIFY_IDENTITY, как описано в Командные параметры для защищённых соединений. Для того, чтобы этот параметр вступил в силу, необходимо также установитьMASTER_SSL=1. Проверка идентификатора имени хоста не работает с самозаверенными сертификатами. -
Для активации проверок списка отзыва сертификатов (CRL) добавьте параметр
MASTER_SSL_CRLилиMASTER_SSL_CRLPATH, как показано здесь:->
MASTER_SSL_CRL = 'crl_file_name',->MASTER_SSL_CRLPATH = 'crl_directory_name',Эти параметры соответствуют параметрам
--ssl-с такими же именами, как описано в Командные параметры для защищённых соединений. Если они не указаны, проверка CRL не выполняется.xxx -
Для указания списков шифров и протоколов шифрования, разрешённых репликой для соединения репликации, добавьте параметры
MASTER_SSL_CIPHERиMASTER_TLS_VERSION, например так:->
MASTER_SSL_CIPHER = 'cipher_list',->MASTER_TLS_VERSION = 'protocol_list',->SOURCE_TLS_CIPHERSUITES = 'ciphersuite_list',Параметр
MASTER_SSL_CIPHERопределяет список разрешённых репликой шифров для соединения репликации, где одно или несколько имён шифров разделены двоеточиями. ПараметрMASTER_TLS_VERSIONопределяет протоколы шифрования, разрешённые репликой для соединения репликации. Формат аналогичен переменной системыtls_version, где одно или несколько версий протоколов разделены запятыми. Протоколы и шифры, которые можно использовать в этих списках, зависят от библиотеки SSL, используемой для компиляции MySQL. Для получения информации о форматах и разрешённых значениях см. раздел 6.3.2 «Протоколы и шифры TLS защищённого соединения». -
После обновления информации об источнике запустите процесс репликации на реплике, например так:
mysql>
START SLAVE;Вы можете использовать оператор
SHOW SLAVE STATUS, чтобы подтвердить, что защищённое соединение было успешно установлено. -
Требование к защищённым соединениям на реплике не гарантирует, что источник требует защищённых соединений от реплик. Если вы хотите убедиться, что источник принимает только реплики, подключающиеся с использованием защищённых соединений, создайте учётную запись репликации на источнике с параметром
REQUIRE SSL, а затем предоставьте этой учётной записи привилегиюREPLICATION SLAVE. Например:mysql>
CREATE USER 'repl'@'%.example.com' IDENTIFIED BY '->password'REQUIRE SSL;mysql>GRANT REPLICATION SLAVE ON *.*->TO 'repl'@'%.example.com';Если у вас уже есть существующая учётная запись репликации на источнике, вы можете добавить
REQUIRE SSLк ней с помощью этого оператора:mysql>
ALTER USER 'repl'@'%.example.com' REQUIRE SSL;
© 2025 Oracle
Licensed under the GPLv2 License.