我正在尝试使用PDO和SSL连接到Rackspace Cloud MySQL数据库。我的连接字符串是:
$(document).ready(function(){
$("input").on("keydown", function (e)
{
return e.which !== 32;
});
})
此错误消息“PDO :: __ construct():SSL操作失败,代码为1. OpenSSL错误消息: 错误:1408F10B:SSL例程:SSL3_GET_RECORD:错误的版本号“
$dbh = new PDO($serverAddress, $username, $password, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
PDO::MYSQL_ATTR_SSL_CA =>'rackspace.pem',
PDO::MYSQL_ATTR_SSL_KEY => 'key.pem',
PDO::MYSQL_ATTR_SSL_CERT => 'cert.pem'
));
是提供here的Rackspace CA文件。 rackspace.pem
和key.pem
是自签名证书(与cert.pem
具有相同的FQDN)。此连接无需SSL即可成功运行。
我在我的服务器的Apache配置中启用了SSLv3(不确定这是否与此相关,因为它是PDO-calling-openssl问题)。
我可以通过mysql客户端连接到数据库实例。在那里,我看到SSL版本是TLSv1(想知道这是否是问题的一部分,不知何故?)。
我读过的有关此错误消息的内容(某些示例 - Error 0x1408F10B: “SSL3_GET_RECORD:wrong version number” with PayPal SDK,how to solve SSL3_GET_RECORD:wrong version number error?)与PDO库无关。
非常感谢任何帮助或方向!谢谢!