Я не очень хорошо разбираюсь в принципах SSL, но просто хочу, чтобы шифрование работало на меня.У меня есть БД и пользователь с указанием «REQUIRE X509».Необходимые сертификаты были созданы, как описано в MySQL docs, и работают хорошо - я могу подключиться к серверу из командной строки Windows.
Проблема возникает, когда я пытаюсь сделать то же самое из моей программы, используя MySQL ClientAPI (без SSL, программа тоже отлично работает).Используемая единица измерения: http://www.audio -data.de / mysql.html .
Это мои пути действий: 1) если я просто добавлю вызов mysql_ssl_set () (с соответствующими параметрами)перед mysql_real_connect () последний выдает общую ошибку соединения SSL.2) Документы MySQL в en / mysql-ssl-set.html говорят, что функция всегда возвращает 0. Но когда я проверил это, оказалось, что результатом является число 11150848. Затем я написал это так:
showmessage(inttostr(mysql_ssl_set(mys, '.\certs\client-key.pem', '.\certs\client-cert.pem', '.\certs\ca-cert.pem', nil)));
... и повторил строку 8 раз.Каждый раз он возвращал немного большее число - 11158528, 11158784, 11159040, ... и два нуля для последних двух вызовов.
После чего mysql_real_connect () был наконец успешным!Программе даже удалось выполнить некоторые запросы, вернуть правильные результаты для них (я знаю данные), но затем она потерпела крах с нарушением прав доступа: запись адреса ... в каком-то месте.Точка сбоя варьировалась между запусками и небольшими изменениями в коде.
Это похоже на проблему несовместимости версий.Я пробовал библиотеки с обеих версий MySQL 5.0 и 5.1 для Windows (сервер 5.1 и работает под Linux удаленно; однако программы mysql-client 5.0 не испытывают проблем при SSL-подключении к нему), но безуспешно.
Кто-нибудь знаком с проблемой?Большое спасибо за помощь и извините за ошибки в вопросе.