如果我运行此代码需要SSL,它将无法正常工作(用户拒绝访问)但没有SSL它可以正常工作。
服务器端可能会发生什么阻止此事?显然不是密码/用户配置和使用SSL的服务器的另一个连接工作正常,所以我知道服务器正在接受加密连接。
有关信息,我已已签出Connect to remote MySQL server with SSL from PHP。
$dbE = new PDO(
'mysql:dbname=DB;host=IP',
USER,
PASS,
array(
PDO::MYSQL_ATTR_SSL_KEY => 'D:\ssl\mysql\client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => 'D:\ssl\mysql\client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => 'D:\ssl\mysql\ca-cert.pem'
)
);
答案 0 :(得分:1)
经过大量的调查,重建证书和抨击我发现了(ptl)。问题是(我在任何地方都没有找到这个),但客户端证书必须是COPIED 从服务器到客户端。 PDO配置中使用的路径是指向ca / cert / key的CLIENTS副本的路径,而不是服务器上的路径。我没有意识到这一点,我认为需要稍微清楚一些。
即使是http://dev.mysql.com/doc/refman/5.0/en/creating-ssl-certs.html上的示例也意味着客户端密钥驻留在服务器上而不是客户端上。我希望这有用。