Spec-Zone.ru › MySQL Connectors 1.0

5.4.75 mysql_ssl_set()

my_bool
mysql_ssl_set(MYSQL *mysql,
              const char *key,
              const char *cert,
              const char *ca,
              const char *capath,
              const char *cipher)

Описание

mysql_ssl_set() используется для установления защищённых соединений с использованием SSL. Аргумент mysql должен быть корректным обработчиком соединения. Любые неиспользуемые аргументы SSL могут быть заданы как NULL.

Если используется, mysql_ssl_set() должен быть вызван перед mysql_real_connect(). mysql_ssl_set() ничего не делает, если поддержка SSL не включена в библиотеке клиента.

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

mysql_ssl_set() задаёт информацию SSL, такую как файлы сертификата и ключа для установления защищённого соединения, если такие соединения доступны, но не накладывает никакого требования, что полученное соединение должно быть защищённым. Чтобы потребовать защищённое соединение, используйте метод, описанный в Разделе 3.6.1, «Поддержка защищённых соединений».

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

mysql_ssl_set() — это удобная функция, которая по существу эквивалентна следующему набору вызовов mysql_options():

mysql_options(mysql, MYSQL_OPT_SSL_KEY,    key);
mysql_options(mysql, MYSQL_OPT_SSL_CERT,   cert);
mysql_options(mysql, MYSQL_OPT_SSL_CA,     ca);
mysql_options(mysql, MYSQL_OPT_SSL_CAPATH, capath);
mysql_options(mysql, MYSQL_OPT_SSL_CIPHER, cipher);

Из-за этого эквивалента приложения могут вместо вызова mysql_ssl_set() напрямую вызывать mysql_options(), опуская вызовы для тех опций, для которых значение опции равно NULL. Кроме того, mysql_options() предлагает опции защищённых соединений, недоступные при использовании mysql_ssl_set(), такие как MYSQL_OPT_SSL_MODE для задания состояния безопасности соединения и MYSQL_OPT_TLS_VERSION для задания протоколов, разрешённых клиентом для защищённых соединений.

Аргументы:

  • mysql: Обработчик соединения, возвращённый функцией mysql_init().

  • key: Имя файла закрытого ключа клиента.

  • cert: Имя файла сертификата открытого ключа клиента.

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

  • capath: Имя каталога, который содержит файлы сертификатов CA SSL.

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

Значения возврата

Эта функция всегда возвращает 0. Если настройка SSL некорректна, последующий вызов mysql_real_connect() возвращает ошибку при попытке подключения.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/c-api-5.7-en/mysql-ssl-set.html

Spec-Zone.ru

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