1
我在通过ssl配置持久的MySQLi连接时遇到问题。任何建议表示赞赏。使用SSL的PHP MySQLi持久连接
W/O持久连接:
$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。
不知怎的,我不认为在SSL将持续工作。不能保证连接的下一个用户将拥有(或被允许使用)相同的SSL凭证。 –
从你在问题中描述的内容中,我会假设持续连接和SSL不会在一起。你可以请添加你的PHP版本的问题? – hakre
其实,我非常有信心,这是一个PHP错误https://bugs.php.net/bug.php?id=55283 –