2011-07-25 21 views
1

sslを介した永続的なMySQLi接続の設定に問題があります。どんな提案も感謝しています。PHP MySQLi SSLによる永続的接続

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) "" 
} 
であります

UPDATE:これはPHPバグだと思うhttps://bugs.php.net/bug.php?id=55283 - 基本的にssl_set()は永続的な接続では無視され、サーバーの設定により、この接続が非SSLになるようにダウングレードされています。

+0

どういうわけか私は、永続的なオーバーSSLが動作するとは思いません。接続の次のユーザーが同じSSL資格情報を持っている(または使用を許可されている)という保証はありません。 –

+0

あなたがあなたの質問に書いているところでは、私は永続的な接続とSSLが一緒に行かないと思います。 PHPのバージョンを質問に追加してください。 – hakre

+0

実際には、これはPHPのバグhttps://bugs.php.net/bug.php?id=55283 –

答えて

0

real_connectの前にmysqli :: ssl_setを実行する必要があります。

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

+0

Ops、間違ったコピー/貼り付けであると私は非常に確信しています。 ssl_set()があります。 –

関連する問題