我有一个项目即将结束,但刚收到DBA的请求,要求我们建立所有连接SSL。所以我在驱动ADODB实例的对象中将驱动程序切换到mysqli,但我没有看到任何本机方法来创建安全连接。
为了使事情变得更加困难,每种连接类型(读写)都有一组不同的证书和密钥。
有人有什么想法吗?
答案 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');
它们中的任何一个都可以工作。