【发布时间】:2015-04-14 18:01:45
【问题描述】:
我正在尝试使用以下代码建立与 MySQL 服务器的 SSL 连接(在 Debian GNU/Linux 7 (wheezy) 和 PHP 5.4.4 上):
$db = new PDO('mysql:host=mysql.myorganization.net;dbname=myDB',
'username', 'password', array(
PDO::MYSQL_ATTR_SSL_CA => 'mysqlCertificates/caChain.pem'
));
var_dump($db->query("SHOW STATUS LIKE 'Ssl_cipher';")->fetchAll());
但我收到此错误:
SQLSTATE[HY000] [2026] SSL connection error: ASN: bad other signature confirmation
我可以使用mysql命令成功建立SSL连接:
mysql -u username -p -h mysql.myorganizataion.net --ssl-ca mysqlCertificates/caChain.pem
我还从源代码构建了 PHP 5.4.4,并且(没有运行 make install)我运行了
sapi/cli/php ~/Projects/test.php
我得到以下输出
array(1) {
[0]=>
array(4) {
["Variable_name"]=>
string(10) "Ssl_cipher"
[0]=>
string(10) "Ssl_cipher"
["Value"]=>
string(18) "DHE-RSA-AES256-SHA"
[1]=>
string(18) "DHE-RSA-AES256-SHA"
}
}
我尝试在 php.ini 文件和 my.cnf 文件中查找任何内容,以查看是否有任何内容可能会破坏连接,但我不确定我在寻找什么。
所以我的问题是:
当从 /usr/bin/php 运行 php 而从 build 文件夹中的 sapi/cli/php 运行 php 时,可能导致此错误出现的原因是什么?
我意识到我的 PHP 已经过时了,但我无法更新它,直到我们的下一个维护窗口,我觉得到目前为止我所做的证明这不是版本问题。
【问题讨论】:
-
你解决过这个问题吗?我正在努力解决几乎相同的问题。
-
我没有。这台服务器仍然有这个问题,由于我无法重建它,我只好将我们的代码放在另一台服务器上。