Постоянные соединения PHP MySQLi с SSL

У меня проблема с настройкой постоянных соединений MySQLi через ssl. Любые предложения приветствуются.

Без постоянных соединений:

$flags = MYSQLI_CLIENT_SSL;
$link = new mysqli();
$link->ssl_set(null, null, null, null, "RC4-MD5");
if ($link->real_connect($host, $user, $pass, $db, $port, null, $flags)) {
    $r = $link->query("SHOW STATUS LIKE 'Ssl_cipher'");
    var_dump($r->fetch_row());
}

выход

array(2) {
   [0]=> string(10) "Ssl_cipher"
   [1]=> string(18) "RC4-MD5"
}

С постоянными соединениями:

$flags = MYSQLI_CLIENT_SSL;
$link = new mysqli();
$link->ssl_set(null, null, null, null, "RC4-MD5");
if ($link->real_connect('p:' . $host, $user, $pass, $db, $port, null, $flags)) {
    $r = $link->query("SHOW STATUS LIKE 'Ssl_cipher'");
    var_dump($r->fetch_row());
}

выход

array(2) {
   [0]=> string(10) "Ssl_cipher"
   [1]=> string(0) ""
}

ОБНОВЛЕНИЕ: я считаю, что это ошибка php https://bugs.php.net/bug.php?id=55283 - в основном ssl_set() игнорируется для постоянных соединений, и в моем случае из-за конфигурации сервера это понизило соединение до не-ssl.


person Aleksey Sanin    schedule 25.07.2011    source источник
comment
Почему-то я не думаю, что ssl поверх постоянного будет работать. Нет никакой гарантии, что следующий пользователь соединения будет иметь (или ему будет разрешено использовать) те же учетные данные SSL.   -  person Marc B    schedule 26.07.2011
comment
Из того, что вы описываете в своем вопросе, я бы предположил, что постоянные соединения и SSL несовместимы. Не могли бы вы добавить свою версию PHP к вопросу?   -  person hakre    schedule 26.07.2011
comment
На самом деле, я очень уверен, что это ошибка php bugs.php.net/bug. php?id=55283   -  person Aleksey Sanin    schedule 28.07.2011


Ответы (1)


Вы должны сначала запустить mysqli::ssl_set перед real_connect.

http://www.php.net/manual/en/mysqli.ssl-set.php

person Chris    schedule 25.07.2011
comment
Упс, неудачная копия/вставка. Есть ssl_set() - person Aleksey Sanin; 28.07.2011