Spec-Zone.ru › MySQL 8.4

8.3 Использование защищённых соединений

  • 8.3.1 Настройка MySQL для использования защищённых соединений
  • 8.3.2 Протоколы и шифры TLS защищённых соединений
  • 8.3.3 Создание сертификатов и ключей SSL и RSA
  • 8.3.4 Подключение к MySQL удалённо из Windows с использованием SSH
  • 8.3.5 Повторное использование сессий SSL

При незащищённом соединении между клиентом MySQL и сервером любой, имеющий доступ к сети, может наблюдать весь трафик и просматривать данные, передаваемые между клиентом и сервером.

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

MySQL поддерживает защищённые соединения между клиентами и сервером с использованием протокола TLS (Transport Layer Security). Иногда TLS упоминается как SSL (Secure Sockets Layer), но MySQL фактически не использует протокол SSL для защищённых соединений, поскольку его шифрование слабое (см. Раздел 8.3.2, «Протоколы и шифры TLS защищённых соединений»).

TLS использует алгоритмы шифрования для обеспечения надёжности данных, полученных по общедоступной сети. Он имеет механизмы для обнаружения изменений, потерь или повторного воспроизведения данных. TLS также включает алгоритмы, обеспечивающие проверку подлинности с использованием стандарта X.509.

X.509 позволяет идентифицировать пользователей в Интернете. В общих чертах, должна существовать определённая сущность, называемая «Центром сертификации» (ЦС), которая выдает электронные сертификаты всем, кто в них нуждается. Сертификаты основаны на асимметричных алгоритмах шифрования, имеющих два ключа шифрования (открытый ключ и секретный ключ). Владелец сертификата может представить сертификат другой стороне как доказательство своей личности. Сертификат содержит открытый ключ его владельца. Любые данные, зашифрованные с использованием этого открытого ключа, могут быть расшифрованы только с помощью соответствующего секретного ключа, который хранится владельцем сертификата.

Поддержка защищённых соединений в MySQL предоставляется с помощью OpenSSL. Сведения о поддерживаемых OpenSSL протоколах и шифрах см. в Разделе 8.3.2, «Протоколы и шифры TLS защищённых соединений».

По умолчанию экземпляры MySQL привязываются к доступной установленной библиотеке OpenSSL во время выполнения для поддержки защищённых соединений и других операций, связанных с шифрованием. Вы можете скомпилировать MySQL из исходного кода и использовать опцию WITH_SSL CMake для указания пути к конкретной установленной версии OpenSSL или альтернативной системе пакетов OpenSSL. В этом случае MySQL выберет указанную версию. Инструкции по выполнению этой операции см. в Разделе 2.8.6, «Настройка поддержки SSL-библиотеки».

Вы можете проверить версию используемой библиотеки OpenSSL во время выполнения, используя системную переменную состояния Tls_library_version.

Если вы скомпилировали MySQL с одной версией OpenSSL и хотите изменить её на другую без перекомпиляции, это можно сделать, отредактировав путь динамической загрузчика библиотек (LD_LIBRARY_PATH в системах Unix или PATH в системах Windows). Удалите путь к скомпилированной версии OpenSSL и добавьте путь к заменяющей версии, поместив его перед другими библиотеками OpenSSL в пути. При запуске, если MySQL не может найти версию OpenSSL, указанную с WITH_SSL в пути, он использует первую версию, указанную в пути.

По умолчанию программы MySQL пытаются подключиться с использованием шифрования, если сервер поддерживает защищённые соединения, переходя к незащищённому соединению, если защищённое соединение невозможно установить. Сведения об опциях, влияющих на использование защищённых соединений, см. в Разделе 8.3.1, «Настройка MySQL для использования защищённых соединений» и Командных параметрах для защищённых соединений.

MySQL выполняет шифрование для каждого соединения, и использование шифрования для данного пользователя может быть необязательным или обязательным. Это позволяет выбирать защищённое или незащищённое соединение в соответствии с требованиями отдельных приложений. Информацию о том, как потребовать от пользователей использование защищённых соединений, см. в обсуждении условия REQUIRE в CREATE USER в Разделе 15.7.1.3, «Оператор CREATE USER». См. также описание системной переменной require_secure_transport в Разделе 7.1.8, «Системные переменные сервера».

Защищённые соединения могут использоваться между серверами источника и реплики. См. Раздел 19.3.1, «Настройка репликации для использования защищённых соединений».

Сведения об использовании защищённых соединений из API MySQL C см. .

Также можно подключаться с использованием шифрования через SSH-соединение к хосту MySQL-сервера. Пример см. в Разделе 8.3.4, «Подключение к MySQL удалённо из Windows с использованием SSH».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/encrypted-connections.html

Spec-Zone.ru

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