Spec-Zone.ru › MySQL 5.7

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-xxx с такими же именами, как описано в Командные параметры для защищённых соединений. Для того, чтобы эти параметры вступили в силу, необходимо также установить MASTER_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-xxx с такими же именами, как описано в Командные параметры для защищённых соединений. Если они не указаны, проверка CRL не выполняется.

  • Для указания списков шифров и протоколов шифрования, разрешённых репликой для соединения репликации, добавьте параметры 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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/replication-encrypted-connections.html

Spec-Zone.ru

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