4.4.5 mysql_ssl_rsa_setup — Создание файлов SSL/RSA
Эта программа создаёт файлы сертификата и ключа SSL, а также файлы пар ключей RSA, необходимые для поддержки защищённых соединений с использованием SSL и защищённого обмена паролями с использованием RSA по незащищённым соединениям, если эти файлы отсутствуют. mysql_ssl_rsa_setup также может быть использован для создания новых файлов SSL, если существующие истекли.
mysql_ssl_rsa_setup использует команду openssl, поэтому его использование зависит от наличия OpenSSL на вашей машине.
Другой способ генерации файлов SSL и RSA для дистрибутивов MySQL, скомпилированных с использованием OpenSSL, — это настройка автоматического их создания сервером. См. Раздел 6.3.3.1, «Создание сертификатов и ключей SSL и RSA с помощью MySQL».
mysql_ssl_rsa_setup снижает барьер для использования SSL, упрощая генерацию необходимых файлов. Однако сертификаты, созданные mysql_ssl_rsa_setup, являются самоподписанными, что не очень безопасно. После приобретения опыта работы с файлами, созданными mysql_ssl_rsa_setup, рассмотрите возможность получения сертификата CA от зарегистрированного центра сертификации.
Вызов mysql_ssl_rsa_setup выглядит так:
mysql_ssl_rsa_setup [options]
Типичные опции — --datadir для указания места создания файлов и --verbose для отображения команд openssl, выполняемых mysql_ssl_rsa_setup.
mysql_ssl_rsa_setup пытается создать файлы SSL и RSA, используя набор имён файлов по умолчанию. Он работает следующим образом:
mysql_ssl_rsa_setup проверяет наличие двоичного файла openssl в местах, указанных переменной среды
PATH. Если openssl не найден, mysql_ssl_rsa_setup ничего не делает. Если openssl присутствует, mysql_ssl_rsa_setup ищет файлы SSL и RSA по умолчанию в каталоге данных MySQL, указанном опцией--datadir, или в каталоге данных по умолчанию, если опция--datadirне указана.-
mysql_ssl_rsa_setup проверяет каталог данных на наличие файлов SSL с такими именами:
ca.pem server-cert.pem server-key.pem
-
Если какой-либо из этих файлов присутствует, mysql_ssl_rsa_setup не создаёт файлы SSL. В противном случае он вызывает openssl для их создания, а также некоторых дополнительных файлов:
ca.pem Self-signed CA certificate ca-key.pem CA private key server-cert.pem Server certificate server-key.pem Server private key client-cert.pem Client certificate client-key.pem Client private key
Эти файлы позволяют устанавливать защищённые соединения клиентов с использованием SSL; см. Раздел 6.3.1, «Настройка MySQL для использования защищённых соединений».
-
mysql_ssl_rsa_setup проверяет каталог данных на наличие файлов RSA с такими именами:
private_key.pem Private member of private/public key pair public_key.pem Public member of private/public key pair
Если какой-либо из этих файлов присутствует, mysql_ssl_rsa_setup не создаёт файлы RSA. В противном случае он вызывает openssl для их создания. Эти файлы обеспечивают защищённый обмен паролями с использованием RSA по незащищённым соединениям для учётных записей, аутентифицированных плагином
sha256_password; см. Раздел 6.4.1.5, «Плагин аутентификации SHA-256».
Сведения о характеристиках файлов, созданных mysql_ssl_rsa_setup, см. в разделе 6.3.3.1, «Создание сертификатов и ключей SSL и RSA с помощью MySQL».
При запуске сервер MySQL автоматически использует файлы SSL, созданные mysql_ssl_rsa_setup, для включения SSL, если не указаны явные опции SSL, кроме --ssl (возможно, вместе с ssl_cipher). Если вы предпочитаете явно указать файлы, вызывайте клиентов с опциями --ssl-ca, --ssl-cert и --ssl-key при запуске, чтобы указать имена файлов ca.pem, server-cert.pem и server-key.pem соответственно.
Сервер также автоматически использует файлы RSA, созданные mysql_ssl_rsa_setup, для включения RSA, если не указаны явные опции RSA.
Если сервер включил SSL, клиенты по умолчанию используют SSL для соединения. Для явного указания файлов сертификата и ключа используйте опции --ssl-ca, --ssl-cert и --ssl-key для указания файлов ca.pem, client-cert.pem и client-key.pem соответственно. Однако, возможно, потребуется дополнительная настройка клиента, так как mysql_ssl_rsa_setup по умолчанию создаёт эти файлы в каталоге данных. Разрешения для каталога данных обычно позволяют доступ только системному аккаунту, выполняющему сервер MySQL, поэтому программы клиентов не могут использовать файлы, расположенные там. Чтобы сделать файлы доступными, скопируйте их в каталог, доступный для чтения (но не для записи) клиентами:
-
Для локальных клиентов можно использовать каталог установки MySQL. Например, если каталог данных является подкаталогом каталога установки и ваше текущее расположение — каталог данных, вы можете скопировать файлы так:
cp ca.pem client-cert.pem client-key.pem ..
Для удалённых клиентов распространите файлы через защищённый канал, чтобы предотвратить их подмену во время передачи.
Если файлы SSL, используемые для установки MySQL, истекли, вы можете использовать mysql_ssl_rsa_setup для создания новых:
Остановите сервер.
Переименуйте или удалите существующие файлы SSL. Возможно, сначала вы захотите сделать их резервную копию. (Файлы RSA не истекают, поэтому нет необходимости их удалять. mysql_ssl_rsa_setup видит, что они существуют, и не перезаписывает их.)
Запустите mysql_ssl_rsa_setup с опцией
--datadirдля указания места создания новых файлов.Перезапустите сервер.
mysql_ssl_rsa_setup поддерживает следующие параметры командной строки, которые могут быть указаны в командной строке или в группах [mysql_ssl_rsa_setup], [mysql_install_db] и [mysqld] файла параметров. Сведения о файлах параметров, используемых программами MySQL, см. в разделе 4.2.2.2, «Использование файлов параметров».
Таблица 4.11 Параметры mysql_ssl_rsa_setup
| Имя параметра | Описание |
|---|---|
| --datadir | Путь к каталогу данных |
| --help | Отобразить сообщение справки и завершить работу |
| --suffix | Суффикс для атрибута имени общего домена сертификата X.509 |
| --uid | Имя эффективного пользователя для использования в разрешениях файлов |
| --verbose | Подробный режим |
| --version | Отобразить информацию о версии и завершить работу |
-
--help,?Формат командной строки --helpОтобразить сообщение справки и завершить работу.
-
Формат командной строки --datadir=dir_nameТип Имя каталога Путь к каталогу, который mysql_ssl_rsa_setup должен проверять на наличие файлов SSL и RSA по умолчанию и в котором он должен создавать файлы, если они отсутствуют. По умолчанию используется скомпилированный каталог данных.
-
Формат командной строки --suffix=strТип Строка Суффикс для атрибута имени общего домена в сертификатах X.509. Значение суффикса ограничено 17 символами. По умолчанию используется значение, основанное на номере версии MySQL.
-
--uid=name,-vФормат командной строки --uid=nameИмя пользователя, который должен быть владельцем созданных файлов. Значение — имя пользователя, а не числовой идентификатор пользователя. В отсутствие этого параметра файлы, созданные mysql_ssl_rsa_setup, принадлежат пользователю, который его выполняет. Этот параметр действителен только если вы выполняете программу как
rootна системе, которая поддерживает системный вызовchown(). -
--verbose,-vФормат командной строки --verboseРежим подробного вывода. Создать больше вывода о том, что делает программа. Например, программа показывает команды openssl, которые она выполняет, и выводит информацию о том, пропускает ли она создание файлов SSL или RSA, потому что некоторые файлы по умолчанию уже существуют.
-
--version,-VФормат командной строки --versionОтобразить информацию о версии и завершить работу.
© 2025 Oracle
Licensed under the GPLv2 License.