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 –