PDO SSL连接出现错误

4
我尝试从 Windows 计算机连接到 Linux 计算机时,出现以下错误:
Warning: PDO::__construct(): SSL operation failed with code 1. OpenSSL Error messages: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number

这是连接代码:

    $dbE = new PDO(
                    'mysql:dbname=db_name;host=host_ip;',
                    'username',
                    'password',
                    array(                                                                                     
                            PDO::MYSQL_ATTR_SSL_KEY         =>'client_side_path\client-key.pem',
                            PDO::MYSQL_ATTR_SSL_CERT        =>'client_side_path\client-cert.pem',
                            PDO::MYSQL_ATTR_SSL_CA          =>'client_side_path\ca-cert.pem'
                    )                                  
                   );
    $dbE->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo 'Connected';  

欢迎任何想法。

你的Linux系统上配置了OpenSSL吗? - Jay Blanchard
我相信是这样,但有没有办法测试一下呢? - Ukuser32
运行 openssl version 命令。 - Jay Blanchard
OpenSSL 1.0.1e-fips 11 Feb 2013 - 这是返回的内容。(顺便说一句,我周一会回来,可能要到那时才能回复。) - Ukuser32
此问题是由于数据库服务器端的 SSL 安装不正确所导致的。 - Bugfixer
1个回答

2

问题已经解决了。原因是 Server B 到证书颁发机构(CA)的路径不正确。值得注意的是,为了解决这个问题,我尝试从 Server A 直接连接,但出现了“bad other signature confirmation”的错误。然后我加载了 CA 证书,并发现它是空的。重启服务器,在 my.cnf 和服务器启动调用中设置正确的路径,所有问题都解决了。非常值得尝试使用 mysql 直接连接,因为它提供了一个非常有用的不同于 PDO 的错误信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接