Spec-Zone.ru › MySQL 9.2

19.3.1 Настройка репликации с использованием защищённых соединений

Для использования защищённого соединения при передаче бинарного лога, необходимого для репликации, оба сервера — источник и реплика — должны поддерживать защищённые сетевые соединения. Если любой из серверов не поддерживает защищённые соединения (поскольку он не был скомпилирован или настроен для них), репликация через защищённое соединение невозможна.

Настройка защищённых соединений для репликации аналогична настройке для клиентских/серверных соединений. Вам необходимо получить (или создать) подходящий сертификат безопасности, который можно использовать на сервере-источнике, и аналогичный сертификат (от того же центра сертификации) на каждом сервере-реплике. Вам также необходимо получить соответствующие файлы ключей.

Дополнительную информацию о настройке сервера и клиента для защищённых соединений см. в разделе 8.3.1 «Настройка MySQL для использования защищённых соединений».

Для активации защищённых соединений на источнике, вам необходимо создать или получить соответствующие файлы сертификата и ключа, а затем добавить следующие параметры конфигурации в раздел [mysqld] файла конфигурации сервера-источника my.cnf, изменив имена файлов по мере необходимости:

[mysqld]
ssl_ca=cacert.pem
ssl_cert=server-cert.pem
ssl_key=server-key.pem

Пути к файлам могут быть относительными или абсолютными; мы рекомендуем всегда использовать полные пути для этой цели.

Параметры конфигурации следующие:

  • ssl_ca: Путь к файлу сертификата центра сертификации (CA). (ssl_capath аналогичен, но указывает путь к каталогу файлов сертификатов CA.)

  • ssl_cert: Путь к файлу сертификата открытого ключа сервера. Этот сертификат может быть отправлен клиенту и проверен по сертификату центра сертификации (CA), которым он обладает.

  • ssl_key: Путь к файлу закрытого ключа сервера.

Для активации защищённых соединений на реплике используйте оператор CHANGE REPLICATION SOURCE TO.

  • Для указания имени файла сертификата и SSL-закрытого ключа реплики с помощью CHANGE REPLICATION SOURCE TO, добавьте соответствующие SOURCE_SSL_xxx опции, например так:

        -> SOURCE_SSL_CA = 'ca_file_name',
        -> SOURCE_SSL_CAPATH = 'ca_directory_name',
        -> SOURCE_SSL_CERT = 'cert_file_name',
        -> SOURCE_SSL_KEY = 'key_file_name',
    

    Эти опции соответствуют опциям --ssl-xxx с одинаковыми именами, как описано в Командные опции для защищённых соединений. Для того, чтобы эти опции вступили в силу, также необходимо установить SOURCE_SSL=1. Для реплицирующего соединения, указание значения для любой из SOURCE_SSL_CA или SOURCE_SSL_CAPATH соответствует установке --ssl-mode=VERIFY_CA. Попытка подключения завершается успешно только если найден действительный соответствующий сертификат центра сертификации (CA).

  • Для активации проверки идентичности имени хоста, добавьте опцию SOURCE_SSL_VERIFY_SERVER_CERT, например так:

        -> SOURCE_SSL_VERIFY_SERVER_CERT=1,
    

    Для реплицирующего соединения, указание SOURCE_SSL_VERIFY_SERVER_CERT=1 соответствует установке --ssl-mode=VERIFY_IDENTITY, как описано в Командные опции для защищённых соединений. Для того, чтобы эта опция вступила в силу, также необходимо установить SOURCE_SSL=1. Проверка идентичности имени хоста не работает с самоподписанными сертификатами.

  • Для активации проверки списков отзыва сертификатов (CRL), добавьте опцию SOURCE_SSL_CRL или SOURCE_SSL_CRLPATH, как показано здесь:

        -> SOURCE_SSL_CRL = 'crl_file_name',
        -> SOURCE_SSL_CRLPATH = 'crl_directory_name',
    

    Эти опции соответствуют опциям --ssl-xxx с одинаковыми именами, как описано в Командные опции для защищённых соединений. Если они не указаны, проверка CRL не выполняется.

  • Для указания списков шифров, наборов шифров и протоколов шифрования, разрешенных репликой для реплицирующего соединения, используйте опции SOURCE_SSL_CIPHER, SOURCE_TLS_VERSION и SOURCE_TLS_CIPHERSUITES, например так:

        -> SOURCE_SSL_CIPHER = 'cipher_list',
        -> SOURCE_TLS_VERSION = 'protocol_list',
        -> SOURCE_TLS_CIPHERSUITES = 'ciphersuite_list',
    
    • Опция SOURCE_SSL_CIPHER указывает список шифров, разделенных двоеточием, разрешенных репликой для реплицирующего соединения.

    • Опция SOURCE_TLS_VERSION указывает список протоколов шифрования TLS, разделенных запятыми, разрешенных репликой для реплицирующего соединения, в формате, подобном формату переменной серверной системы tls_version. Процедура подключения договаривается об использовании самой высокой версии TLS, разрешенной как источником, так и репликой. Для успешного подключения реплика должна иметь хотя бы одну общую версию TLS с источником.

    • Опция SOURCE_TLS_CIPHERSUITES указывает список наборов шифров, разделенных двоеточием, разрешенных репликой для реплицирующего соединения, если для подключения используется TLSv1.3. Если эта опция установлена в значение NULL при использовании TLSv1.3 (по умолчанию, если опция не задана), разрешаются шифры, включенные по умолчанию. Если вы зададите пустую строку, ни один набор шифров не будет разрешен, и TLSv1.3, следовательно, не будет использоваться.

    Протоколы, шифры и наборы шифров, которые вы можете указать в этих списках, зависят от используемой для компиляции MySQL библиотеки SSL. Дополнительную информацию о форматах, разрешенных значениях и значениях по умолчанию, если опции не указаны, см. в разделе 8.3.2 «Протоколы и шифры TLS защищённых соединений».

    Примечание

    Вы можете использовать опцию SOURCE_TLS_CIPHERSUITES для указания любого набора шифров, включая только нестандартные шифры, если это необходимо.

  • После обновления информации об источнике запустите процесс репликации на реплике, например так:

    mysql> START REPLICA;
    

    Вы можете использовать оператор SHOW REPLICA 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-8.4-en/replication-encrypted-connections.html

Spec-Zone.ru

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