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".
Ситуация такая:
В мануале к мускулу сказано
Результат выполнения кода:
Вопрос: в чем может быть проблема?
И еще одно странное обстоятельство: этот скрипт тестирую на рабочем серваке (Linux, Apache 2.0.59) и на домашнем (WinXP SP2, Apache 1.3.33, PHP 5.1.2, MySQL 5.0.26). На домашнем серваке var_dump возвращает то же самое, но вот предупреждения никакого нет. К чему бы это?
На обоих серваках пробовал также использовать такую функцию:
На рабочем серваке ответа не было вообще, а на домашнем отвечали такое:
В общем, что делать, я не знаю. Подскажите, пожалуйста!
Здравствуйте!
Мне необходимо создать защищенное 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