1

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

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

有人有想法么?

4

2 回答 2

2

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

$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 Client Flags 的引用:

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

于 2009-10-02T16:08:46.813 回答
0

我更喜欢带有 Connect 方法和 clientFlags 属性的那个。

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

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

于 2011-01-18T15:30:12.123 回答