[英]PHP: PDO(MySQL) SSL Connection
我正在嘗試使用以下代碼建立到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但不是從構建文件夾中的sapi / cli / php運行時?
我意識到我的PHP已經過時但我無法更新它直到我們的下一個維護窗口,我覺得我到目前為止所做的事情表明它不是版本問題。
在您的示例中,您沒有在證書的PDO連接字符串中使用完整路徑:
PDO::MYSQL_ATTR_SSL_CA => 'mysqlCertificates/caChain.pem'
你可以試試下面的完整路徑嗎?
PDO::MYSQL_ATTR_SSL_CA => '/fullpath/to/mysqlCertificates/caChain.pem'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.