Ron*_*tel 5 php mysql ssl php-7
Mysql服务器正在运行php5.3.新的webserver正在运行php7.1(从php5.3迁移).当我尝试连接mysql服务器与ssl时,它无法正常工作.
try {
$dbh = new PDO($dsn, $user, $password, array(PDO::MYSQL_ATTR_SSL_KEY => '/etc/mysql/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/etc/mysql/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => '/etc/mysql/ca-cert.pem')
);
echo "Connestion established";
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
连接失败:SQLSTATE [HY000] [2002]
PDO :: __ construct():SSL操作失败,代码为1. OpenSSL错误消息:错误:1416F086:SSL例程:tls_process_server_certificate:证书验证失败
但是,当我从连接中删除SSL块时,它的工作正常.我不知道发生了什么事.可能是服务器和客户端的版本不匹配.Becasue我使用旧的公钥和私钥.
是因为mysql客户端和服务器版本不匹配?
PS:我只在网络服务器上升级了php7.
您说您“将 SSL 密钥从一台服务器复制到另一台服务器”。那么有新服务器了吗?新服务器具有新身份,因此远程服务器将拒绝证书,因为 ID 不匹配。
我认为您应该首先从“known_hosts”文件中删除远程服务器上的行。然后,在 Nginx 服务器上,您应该使用这些 SSH 密钥手动连接到远程服务器,并进行一次连接,以便将新身份添加到known_hosts。
之后我认为它应该有效。
即使上述方法不起作用,我认为最好通过手动连接到远程主机来调试此问题。当它起作用时,你可以尝试设置 mysql 连接。
| 归档时间: |
|
| 查看次数: |
2758 次 |
| 最近记录: |