Проблемы с функцией mysqli_ssl_set

Senator

Новичок
Проблемы с функцией mysqli_ssl_set

Здравствуйте!

Мне необходимо создать защищенное SSL соединение с MySQL.
Все, что для этого требуется, у меня есть: php 5.1.6 с поддержкой open_ssl, MySQL 5.0.26 также с поддержкой open_ssl, все необходимые сертификаты и настройки БД для поддержки защищенных сединений, т.е. запрос
[sql]SHOW VARIABLES LIKE 'have_openssl'[/sql] возвращает "YES".

Ситуация такая:
В мануале к мускулу сказано
A client can determine whether the current connection with the server uses SSL by checking the value of the Ssl_cipher status variable. The value of Ssl_cipher is non-empty if SSL is used, and empty otherwise.
Соответственно, чтобы удостовериться, что инициализированное соединение является защищенным, использую такой код
Код:
$id = mysqli_init();
mysqli_ssl_set( $id, "/path-to-keys/client-key.pem", "/path-to-keys/client-cert.pem", "/path-to-keys/cacert.pem", NULL, NULL );
mysqli_real_connect( $id, 'localhost', 'user', 'password' );
$result = mysqli_query( $id, "SHOW STATUS LIKE 'Ssl_cipher'" );
var_dump( mysqli_fetch_array( $result ) );
Результат выполнения кода:
Код:
Warning: mysqli_ssl_set() [function.mysqli-ssl-set]: invalid object or resource mysqli in /path-to-file/test_ssl.php on line 2
array(4) { [0]=>  string(10) "Ssl_cipher" ["Variable_name"]=>  string(10) "Ssl_cipher" [1]=>  string(0) "" ["Value"]=>  string(0) "" }
Вопрос: в чем может быть проблема?

И еще одно странное обстоятельство: этот скрипт тестирую на рабочем серваке (Linux, Apache 2.0.59) и на домашнем (WinXP SP2, Apache 1.3.33, PHP 5.1.2, MySQL 5.0.26). На домашнем серваке var_dump возвращает то же самое, но вот предупреждения никакого нет. К чему бы это?

На обоих серваках пробовал также использовать такую функцию:
Код:
mysqli_real_connect( $id, 'localhost', 'user', 'password', NULL, NULL, NULL, MYSQLI_CLIENT_SSL );
На рабочем серваке ответа не было вообще, а на домашнем отвечали такое:
Код:
Warning: mysqli_real_connect() [function.mysqli-real-connect]: (HY000/2013): Lost connection to MySQL server during query in I:\path-to-file\test_ssl.php on line 3
В общем, что делать, я не знаю. Подскажите, пожалуйста!
 

Senator

Новичок
Это я уже смотрел.
Посмотрите на информацию о баге:
Status: Closed
Version: 5.1.4
. При этом, в более ранней версии php (5.1.2, которая на домашнем серваке) описываемого предупреждения нет, а в более поздней (5.1.6, на рабочем серваке) оно есть. :confused:

-~{}~ 08.11.06 13:27:

В общем, баг был исправлен только в версии 5.2.0, которую я сейчас поставил. Предупреждение больше не выводится, но и защищенное соединение все еще не работает.
Есть идеи, как его включить?
 

Senator

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

Что касается работы функции, то решения нигде не нашел. Везде глухо...

P.S. Админам форума: ребят, ну у вас и система оповещения! Письмо с уведомлением об ответе в тему мне пришло только сейчас, спустя 17 (!!!) дней после того, как ответ был в теме написан. LOL :)
Я уж про тему забыл давно...
 
Сверху