与ADODB的SSL连接

时间:2009-10-02 15:58:29

标签: php ssl mysqli adodb

我有一个项目即将结束,但刚收到DBA的请求,要求我们建立所有连接SSL。所以我在驱动ADODB实例的对象中将驱动程序切换到mysqli,但我没有看到任何本机方法来创建安全连接。

为了使事情变得更加困难,每种连接类型(读写)都有一组不同的证书和密钥。

有人有什么想法吗?

2 个答案:

答案 0 :(得分:2)

  

诀窍是在中使用DSN   NewADOConnection()调用(而不是   使用Connect()调用进行身份验证)   并使用mysqli驱动程序。 DSN   语法允许您提供客户端   旗帜,还有一个mysqli旗帜   使用SSL证书。

$dsn = 'mysqli://ssluser:sslpass@dbhost/test?clientflags=2048';

$dbh = NewADOConnection($dsn);

$sql = "show status like 'ssl_cipher'";
$res =& $dbh->Execute($sql);
print_r( $res->fields );
$res->Close();
$dbh->Close();

这个问题的答案可在以下网址找到:

http://mbrisby.blogspot.com/2008/06/adodb-php-mysql-ssl.html

以下是对MySQL客户端标志的引用:

http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol

答案 1 :(得分:0)

我更喜欢使用Connect方法和clientFlags属性。

$dbc = NewADOConnection('mysqli');
$dbc->clientFlags = CLIENT_SSL;
$this->dbc->Connect('dbhost', 'ssluser', 'sslpass', 'test');

它们中的任何一个都可以工作。