Spec-Zone.ru › MySQL 9.2

8.3.1 Настройка MySQL для использования защищённых соединений

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

  • Настройка сервера при запуске для защищённых соединений

  • Настройка и мониторинг сервера во время работы для защищённых соединений

  • Настройка клиента для защищённых соединений

  • Настройка проверки валидности сертификатов

  • Настройка обязательного использования защищённых соединений

Защищённые соединения также могут использоваться в других контекстах, как обсуждается в дополнительных разделах:

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

  • Между серверами Group Replication. См. Раздел 20.6.2, «Защита соединений групповой коммуникации с помощью Secure Socket Layer (SSL)».

  • Программными клиентами, основанными на MySQL C API. См. .

Инструкции по созданию необходимых файлов сертификата и ключа доступны в Разделе 8.3.3, «Создание сертификатов SSL и RSA и ключей».

Настройка сервера при запуске для защищённых соединений

Чтобы потребовать от клиентов подключения с использованием защищённых соединений, включите переменную системы require_secure_transport. См. Настройка обязательного использования защищённых соединений.

Эти переменные системы на стороне сервера задают файлы сертификата и ключа, используемые сервером при разрешении клиентам устанавливать защищённые соединения:

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

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

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

Например, чтобы включить поддержку защищённых соединений на сервере, запустите его с этими строками в файле my.cnf, изменив имена файлов при необходимости:

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

Чтобы дополнительно указать, что клиенты должны использовать защищённые соединения, включите переменную системы require_secure_transport:

[mysqld]
ssl_ca=ca.pem
ssl_cert=server-cert.pem
ssl_key=server-key.pem
require_secure_transport=ON

Каждая переменная системы сертификата и ключа указывает на файл в формате PEM. Если вам необходимо создать необходимые файлы сертификата и ключа, см. Раздел 8.3.3, «Создание сертификатов SSL и RSA и ключей». Серверы MySQL, скомпилированные с использованием OpenSSL, могут автоматически генерировать отсутствующие файлы сертификата и ключа при запуске. См. Раздел 8.3.3.1, «Создание сертификатов SSL и RSA и ключей с использованием MySQL». В качестве альтернативы, если у вас есть дистрибутив MySQL, вы можете протестировать свою установку, используя демонстрационные файлы сертификата и ключа в каталоге mysql-test/std_data.

Сервер выполняет автоматическое обнаружение файлов сертификата и ключа. Если для настройки защищённых соединений не заданы явные параметры защищённых соединений, сервер пытается автоматически включить поддержку защищённых соединений при запуске:

  • Если сервер обнаруживает валидные файлы сертификата и ключа с именами ca.pem, server-cert.pem и server-key.pem в каталоге данных, он включает поддержку защищённых соединений для клиентов. (Файлы не обязательно должны быть сгенерированы автоматически; важно, чтобы у них были эти имена и они были валидными.)

  • Если сервер не находит валидные файлы сертификата и ключа в каталоге данных, он продолжает выполнение, но без поддержки защищённых соединений.

Если сервер автоматически включает поддержку защищённых соединений, он записывает заметку в журнал ошибок. Если сервер обнаруживает, что сертификат CA самоподписанный, он записывает предупреждение в журнал ошибок. (Сертификат самоподписанный, если создан автоматически сервером.)

MySQL также предоставляет следующие переменные системы для управления защищёнными соединениями на стороне сервера:

  • ssl_cipher: Список разрешённых шифров для шифрования соединений.

  • ssl_crl: Путь к файлу, содержащему списки отзыва сертификатов. (ssl_crlpath аналогичен, но задаёт путь к каталогу файлов списков отзыва сертификатов.)

  • tls_version, tls_ciphersuites: Протоколы шифрования и наборы шифров, которые сервер разрешает для защищённых соединений; см. Раздел 8.3.2, «Протоколы и шифры TLS защищённых соединений». Например, вы можете настроить tls_version, чтобы предотвратить использование клиентами менее защищённых протоколов.

Если сервер не может создать действительный контекст TLS из переменных системы для управления защищёнными соединениями на стороне сервера, сервер выполняется без поддержки защищённых соединений.

Настройка и мониторинг шифрованных соединений на стороне сервера во время выполнения

Переменные системы tls_xxx и ssl_xxx динамические и могут быть установлены во время выполнения, а не только при запуске. Если они изменены с помощью SET GLOBAL, новые значения применяются только до перезапуска сервера. Если они изменены с помощью SET PERSIST, новые значения также сохраняются при последующих перезапусках сервера. См. Раздел 15.7.6.1, «Синтаксис SET для присваивания переменных». Однако изменения этих переменных во время выполнения немедленно не влияют на контекст TLS для новых подключений, как описано позже в этом разделе.

Вместе с возможностью изменения контекста TLS связанных переменных системы во время выполнения, сервер позволяет выполнять обновления фактического контекста TLS, используемого для новых подключений во время выполнения. Эта возможность может быть полезной, например, чтобы избежать перезапуска сервера MySQL, который работал так долго, что его сертификат SSL истек.

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

Таблица 8.12 Переменные системы и состояния для контекста TLS интерфейса основного подключения сервера

Таблица 8.12 Переменные системы и состояния для контекста TLS интерфейса основного подключения сервера
Имя переменной системы Соответствующее имя переменной состояния
ssl_ca Current_tls_ca
ssl_capath Current_tls_capath
ssl_cert Current_tls_cert
ssl_cipher Current_tls_cipher
ssl_crl Current_tls_crl
ssl_crlpath Current_tls_crlpath
ssl_key Current_tls_key
tls_ciphersuites Current_tls_ciphersuites
tls_version Current_tls_version

Эти активные значения контекста TLS также отображаются как свойства в таблице Performance Schema tls_channel_status, наряду с свойствами для любых других активных контекстов TLS.

Для переконфигурации контекста TLS во время выполнения используйте эту процедуру:

  1. Установите каждое значение переменной системы, относящейся к контексту TLS, которое должно быть изменено, на его новое значение.

  2. Выполните ALTER INSTANCE RELOAD TLS. Эта команда переконфигурирует активный контекст TLS из текущих значений переменных системы, связанных с контекстом TLS. Она также устанавливает переменные состояния, связанные с контекстом, для отражения новых активных значений контекста. Для выполнения команды требуется привилегия CONNECTION_ADMIN.

  3. Новые подключения, установленные после выполнения ALTER INSTANCE RELOAD TLS, используют новый контекст TLS. Существующие подключения остаются без изменений. Если существующие подключения необходимо завершить, используйте команду KILL.

Элементы каждой пары переменных системы и состояния могут иметь временные значения, отличные от значений, из-за того, как работает процедура переконфигурации:

  • Изменения переменных системы до ALTER INSTANCE RELOAD TLS не изменяют контекст TLS. В этот момент эти изменения не влияют на новые подключения, и соответствующие переменные системы и состояния контекста могут иметь разные значения. Это позволяет внести необходимые изменения в отдельные переменные системы, а затем атомарно обновить активный контекст TLS с помощью ALTER INSTANCE RELOAD TLS после внесения всех изменений переменных системы.

  • После ALTER INSTANCE RELOAD TLS соответствующие переменные системы и состояния имеют одинаковые значения. Это сохраняется до следующего изменения переменных системы.

В некоторых случаях ALTER INSTANCE RELOAD TLS сам по себе может быть достаточным для переконфигурации контекста TLS без изменения каких-либо переменных системы. Предположим, что сертификат в файле, имя которого указано в ssl_cert, истек. Достаточно заменить содержимое существующего файла неистекшим сертификатом и выполнить ALTER INSTANCE RELOAD TLS, чтобы содержимое нового файла было прочитано и использовано для новых подключений.

Сервер реализует независимую настройку шифрования подключений для административного интерфейса подключения. См. Поддержка шифрованных подключений административного интерфейса. Кроме того, ALTER INSTANCE RELOAD TLS дополнено клаузой FOR CHANNEL, которая позволяет указать канал (интерфейс), для которого следует перезагрузить контекст TLS. См. Раздел 15.1.5, «Команда ALTER INSTANCE». Нет переменных состояния для отображения контекста TLS административного интерфейса, но таблица Performance Schema tls_channel_status отображает свойства TLS для основных и административных интерфейсов. См. Раздел 29.12.22.10, «Таблица tls_channel_status».

Обновление контекста TLS основного интерфейса имеет следующие последствия:

  • Обновление изменяет контекст TLS, используемый для новых подключений к основному интерфейсу подключения.

  • Обновление также изменяет контекст TLS, используемый для новых подключений к административному интерфейсу, за исключением случаев, когда для этого интерфейса настроено какое-либо отличное от значения по умолчанию значение параметра TLS.

  • Обновление не влияет на контекст TLS, используемый другими включенными серверными плагинами или компонентами, такими как Group Replication или X Plugin:

    • Чтобы применить переконфигурацию основного интерфейса к подключениям группы связи Group Replication, которые получают свои настройки из связанных с контекстом TLS переменных сервера, необходимо выполнить STOP GROUP_REPLICATION, а затем START GROUP_REPLICATION, чтобы остановить и перезапустить Group Replication.

    • Плагин X инициализирует свой контекст TLS при инициализации плагина, как описано в Разделе 22.5.3, «Использование шифрованных подключений с плагином X». После этого контекст не изменяется.

По умолчанию действие RELOAD TLS отменяется с ошибкой и не имеет эффекта, если значения конфигурации не позволяют создать новый контекст TLS. Предыдущие значения контекста по-прежнему используются для новых подключений. Если указана необязательная клауза NO ROLLBACK ON ERROR и новый контекст не может быть создан, откат не происходит. Вместо этого генерируется предупреждение, и шифрование отключается для новых подключений к интерфейсу, к которому применяется команда.

Параметры, которые включают или отключают шифрованные подключения на интерфейсе соединения, действуют только при запуске. Например, параметры --tls-version и --admin-tls-version влияют только при запуске на то, поддерживают ли основной и административный интерфейсы эти версии TLS. Такие параметры игнорируются и не влияют на работу ALTER INSTANCE RELOAD TLS во время выполнения. Например, вы можете установить tls_version='', чтобы запустить сервер с отключенными шифрованными подключениями на основном интерфейсе, а затем переконфигурировать TLS и выполнить ALTER INSTANCE RELOAD TLS, чтобы включить шифрованные подключения во время выполнения.

Настройка шифрованных подключений на стороне клиента

Полный список параметров клиента, связанных с установкой шифрованных подключений, см. в Параметрах командной строки для шифрованных подключений.

По умолчанию программы-клиенты MySQL пытаются установить шифрованное подключение, если сервер поддерживает шифрованные подключения, с дополнительным управлением через параметр --ssl-mode:

  • При отсутствии параметра --ssl-mode, клиенты пытаются подключиться с шифрованием, переходя к нешифрованному подключению, если шифрованное подключение не может быть установлено. Это поведение также сохраняется при явном использовании параметра --ssl-mode=PREFERRED.

  • С параметром --ssl-mode=REQUIRED клиенты требуют шифрованного подключения и завершаются ошибкой, если оно не может быть установлено.

  • С параметром --ssl-mode=DISABLED клиенты используют нешифрованное подключение.

  • При использовании параметров --ssl-mode=VERIFY_CA или --ssl-mode=VERIFY_IDENTITY клиенты требуют шифрованного подключения и также выполняют проверку по сертификату CA сервера и (с VERIFY_IDENTITY) по имени хоста сервера в его сертификате.

Важно

Значение по умолчанию, --ssl-mode=PREFERRED, создаёт шифрованное подключение, если другие параметры по умолчанию не изменены. Однако, чтобы предотвратить сложные атаки «человек посередине», важно, чтобы клиент проверял личность сервера. Параметры --ssl-mode=VERIFY_CA и --ssl-mode=VERIFY_IDENTITY являются лучшим выбором, чем значение по умолчанию, чтобы предотвратить этот тип атак. VERIFY_CA заставляет клиента проверять, является ли сертификат сервера действительным. VERIFY_IDENTITY заставляет клиента проверять, является ли сертификат сервера действительным, а также проверять, соответствует ли имя хоста, используемое клиентом, идентификатору в сертификате сервера. Для реализации одного из этих параметров необходимо предварительно убедиться, что сертификат CA сервера надёжно доступен всем клиентам, которые его используют в вашей среде, иначе возникнут проблемы с доступностью. По этой причине они не являются значениями по умолчанию.

Попытки установить нешифрованное подключение завершаются ошибкой, если системная переменная require_secure_transport включена на стороне сервера, чтобы сервер требовал шифрованных подключений. См. Настройку обязательного шифрованного подключения.

Следующие параметры на стороне клиента идентифицируют сертификаты и ключи, которые клиенты используют при установлении шифрованных подключений к серверу. Они похожи на системные переменные ssl_ca, ssl_cert и ssl_key, используемые на стороне сервера, но --ssl-cert и --ssl-key идентифицируют открытый и закрытый ключи клиента:

  • --ssl-ca: Путь к файлу сертификата Центра сертификации (CA). Если используется, этот параметр должен указывать тот же сертификат, что и сервер. (--ssl-capath аналогичен, но указывает путь к каталогу файлов сертификатов CA.)

  • --ssl-cert: Путь к файлу сертификата открытого ключа клиента.

  • --ssl-key: Путь к файлу закрытого ключа клиента.

Для дополнительной безопасности относительно стандартного шифрования клиенты могут предоставить сертификат CA, соответствующий сертификату сервера, и включить проверку имени хоста. Таким образом, сервер и клиент доверяют одному и тому же сертификату CA, а клиент проверяет, что хост, к которому он подключился, является тем, который ожидался:

  • Для указания сертификата CA используйте --ssl-ca (или --ssl-capath), и укажите --ssl-mode=VERIFY_CA.

  • Чтобы включить проверку имени хоста, используйте --ssl-mode=VERIFY_IDENTITY вместо --ssl-mode=VERIFY_CA.

Примечание

Проверка имени хоста с помощью VERIFY_IDENTITY не работает с самоподписанными сертификатами, которые создаются сервером автоматически (см. Раздел 8.3.3.1, «Создание сертификатов SSL и RSA с помощью MySQL»). Такие самоподписанные сертификаты не содержат имени сервера в качестве значения Common Name.

MySQL также предоставляет эти параметры для управления шифрованным подключением на стороне клиента:

  • --ssl-cipher: Список разрешённых шифров для шифрования подключения.

  • --ssl-crl: Путь к файлу, содержащему списки отзыва сертификатов. (--ssl-crlpath аналогичен, но указывает путь к каталогу файлов списков отзыва сертификатов.)

  • --tls-version, --tls-ciphersuites: Разрешенные протоколы шифрования и наборы шифров; см. Раздел 8.3.2, «Протоколы TLS и шифры шифрованного подключения».

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

Предположим, что вы хотите подключиться с учётной записью, у которой нет особых требований к шифрованию или которая была создана с помощью инструкции CREATE USER с включённой частью REQUIRE SSL. Предполагая, что сервер поддерживает шифрованные подключения, клиент может подключиться с шифрованием без параметра --ssl-mode или с явным параметром --ssl-mode=PREFERRED:

mysql

Или:

mysql --ssl-mode=PREFERRED

Для учётной записи, созданной с частью REQUIRE SSL, попытка подключения завершается ошибкой, если шифрованное подключение не может быть установлено. Для учётной записи без особых требований к шифрованию попытка возвращается к нешифрованному подключению, если шифрованное подключение не может быть установлено. Чтобы предотвратить возврат и завершиться ошибкой, если шифрованное подключение не может быть получено, подключитесь так:

mysql --ssl-mode=REQUIRED

Если учётная запись имеет более строгие требования к безопасности, для установления шифрованного подключения необходимо указать другие параметры:

  • Для учётных записей, созданных с частью REQUIRE X509, клиенты должны указать как минимум --ssl-cert и --ssl-key. Кроме того, рекомендуется использовать --ssl-ca (или --ssl-capath), чтобы проверить предоставленный сервером открытый сертификат. Например (введите команду в одну строку):

    mysql --ssl-ca=ca.pem
          --ssl-cert=client-cert.pem
          --ssl-key=client-key.pem
    
  • Для учётных записей, созданных с частью REQUIRE ISSUER или REQUIRE SUBJECT, требования к шифрованию такие же, как для REQUIRE X509, но сертификат должен соответствовать выпущенному или предмету, указанному в определении учётной записи.

Дополнительную информацию о части REQUIRE см. в Разделе 15.7.1.3, «CREATE USER Statement».

Серверы MySQL могут генерировать файлы сертификатов и ключей клиента, которые клиенты могут использовать для подключения к экземплярам сервера MySQL. См. Раздел 8.3.3, «Создание сертификатов SSL и RSA».

Важно

Если клиент, подключающийся к экземпляру сервера MySQL, использует сертификат SSL с расширением extendedKeyUsage (расширение X.509 v3), то расширенное использование ключа должно включать аутентификацию клиента (clientAuth). Если сертификат SSL указан только для аутентификации сервера (serverAuth) и других целей, не связанных с сертификатами клиента, проверка сертификата завершается неудачей, и подключение клиента к экземпляру сервера MySQL прерывается. В сертификатах SSL, сгенерированных сервером MySQL (как описано в Разделе 8.3.3.1, «Создание сертификатов SSL и RSA и ключей с помощью MySQL»), нет расширения extendedKeyUsage, а сертификаты SSL, созданные с помощью команды openssl в соответствии с инструкциями в Разделе 8.3.3.2, «Создание сертификатов SSL и ключей с помощью openssl», также не содержат его. Если вы используете собственный сертификат клиента, созданный другим способом, убедитесь, что любое расширение extendedKeyUsage включает аутентификацию клиента.

Чтобы предотвратить использование шифрования и переопределить другие --ssl-xxx параметры, вызовите клиентскую программу с --ssl-mode=DISABLED:

mysql --ssl-mode=DISABLED

Чтобы определить, использует ли текущее подключение к серверу шифрование, проверьте значение сессии переменной состояния Ssl_cipher. Если значение пустое, подключение не зашифровано. В противном случае подключение зашифровано, а значение указывает на используемый шифр шифрования. Например:

mysql> SHOW SESSION STATUS LIKE 'Ssl_cipher';
+---------------+---------------------------+
| Variable_name | Value                     |
+---------------+---------------------------+
| Ssl_cipher    | DHE-RSA-AES128-GCM-SHA256 |
+---------------+---------------------------+

Для клиента mysql альтернативой является использование команды STATUS или \s и проверка строки SSL:

mysql> \s
...
SSL: Not in use
...

Или:

mysql> \s
...
SSL: Cipher in use is DHE-RSA-AES128-GCM-SHA256
...

Настройка принудительной проверки сертификатов

Параметр --tls-certificates-enforced-validation позволяет выполнять проверку файла сертификата открытого ключа сервера, файлов сертификатов центров сертификации (ЦС) и файлов списков отзыва сертификатов при запуске сервера:

mysqld --tls-certificates-enforced-validation

Если значение установлено в ON, сервер прекращает выполнение процесса запуска в случае недействительных сертификатов. Сервер информирует администраторов базы данных, предоставляя соответствующие сообщения отладки, сообщения об ошибках или то и другое, в зависимости от состояния сертификатов. Эта функция может быть полезной, например, для предотвращения перезапуска сервера MySQL, который работал так долго, что его сертификат SSL истек.

Аналогично, при выполнении инструкции ALTER INSTANCE RELOAD TLS для изменения контекста TLS во время выполнения новые файлы сертификатов сервера и ЦС не используются, если проверка завершается неудачей. В этом случае сервер продолжает использовать старые сертификаты. Дополнительную информацию об изменении контекста TLS динамически см. в Разделе «Настройка и мониторинг конфигурации сервера для зашифрованных подключений во время выполнения».

Проверка сертификатов ЦС

Для подключения, использующего основной интерфейс сервера:

  • Если указан --ssl_ca, сервер проверяет соответствующий сертификат ЦС и предоставляет администратору базы данных соответствующее сообщение предупреждения.

  • Если указан --ssl_capath, сервер проверяет все сертификаты ЦС в соответствующей папке и предоставляет администратору базы данных соответствующее сообщение предупреждения.

  • Если параметры SSL не указаны, по умолчанию сервер проверяет сертификат ЦС, находящийся в каталоге данных, и предоставляет администратору базы данных соответствующее сообщение предупреждения.

Для подключения, использующего административный интерфейс сервера:

  • Если указан --admin_ssl_ca, сервер проверяет соответствующий сертификат ЦС и предоставляет администратору базы данных соответствующее сообщение предупреждения.

  • Если указан --admin_ssl_capath, сервер проверяет все сертификаты ЦС в соответствующей папке и предоставляет администратору базы данных соответствующее сообщение предупреждения.

  • Если административные параметры SSL не указаны, по умолчанию сервер проверяет сертификат ЦС, находящийся в каталоге данных, и предоставляет администратору базы данных соответствующее сообщение предупреждения.

Проверка сертификата сервера

Для подключения, использующего основной интерфейс сервера:

  • Если --ssl_cert не указан, сервер проверяет сертификат сервера в стандартном каталоге данных.

  • Если указан --ssl_cert, сервер проверяет сертификат сервера, учитывая --ssl_crl, если он указан.

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

Для подключения, использующего административный интерфейс сервера:

  • Если --admin_ssl_cert не указан, сервер проверяет сертификат сервера в стандартном каталоге данных.

  • Если указан --admin_ssl_cert, сервер проверяет сертификат сервера, учитывая --admin_ssl_crl, если он указан.

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

Настройка обязательного использования шифрованных подключений

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

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

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

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

Чтобы потребовать от клиентов подключение с использованием зашифрованных соединений, включите системную переменную require_secure_transport. Например, добавьте эти строки в файл сервера my.cnf:

[mysqld]
require_secure_transport=ON

В качестве альтернативы, для установки и сохранения значения во время выполнения, используйте это утверждение:

SET PERSIST require_secure_transport=ON;

SET PERSIST устанавливает значение для работающего экземпляра MySQL. Также он сохраняет значение, заставляя его использоваться при последующих перезапусках сервера. См. Раздел 15.7.6.1, «Синтаксис SET для присваивания переменных».

При включенном require_secure_transport клиентские подключения к серверу обязаны использовать какой-либо вид защищенного транспорта, и сервер допускает только подключения TCP/IP, использующие SSL, или подключения, использующие файл сокета (в Unix) или общую память (в Windows). Сервер отклоняет попытки подключения без шифрования, которые завершаются ошибкой.

Чтобы вызвать клиентскую программу таким образом, чтобы она требовала зашифрованное подключение независимо от того, требует ли сервер шифрование, используйте значение параметра --ssl-mode REQUIRED, VERIFY_CA или VERIFY_IDENTITY. Например:

mysql --ssl-mode=REQUIRED
mysqldump --ssl-mode=VERIFY_CA
mysqladmin --ssl-mode=VERIFY_IDENTITY

Чтобы настроить учетную запись MySQL так, чтобы она могла использоваться только через зашифрованные подключения, включите клаузу REQUIRE в инструкции CREATE USER для создания учетной записи, указав в этой клаузе необходимые характеристики шифрования. Например, чтобы потребовать шифрованное подключение и использование действительного сертификата X.509, используйте REQUIRE X509:

CREATE USER 'jeffrey'@'localhost' REQUIRE X509;

Дополнительную информацию о клаузе REQUIRE см. в Разделе 15.7.1.3, «Инструкция CREATE USER».

Для изменения существующих учетных записей, не имеющих требований к шифрованию, используйте инструкцию ALTER USER.

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

Spec-Zone.ru

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