首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL SSL远程连接错误:无法获取私钥

MySQL SSL远程连接错误:无法获取私钥
EN

Stack Overflow用户
提问于 2013-07-17 23:43:48
回答 3查看 18.6K关注 0票数 12

我正在尝试编写一个PHP脚本(托管在具有GoDaddy的VPS上),该脚本使用SSL连接到远程MySQL数据库(托管在亚马逊EC2实例上)。

我生成了一些证书(根据http://dev.mysql.com/doc/refman/5.0/en/creating-ssl-certs.html)并在远程/服务器数据库上配置了my.cnf,如下所示:

[mysqld]
ssl-ca      =/etc/mysql/ca-cert.pem
ssl-cert    =/etc/mysql/server-cert.pem
ssl-key     =/etc/mysql/server-key.pem

[client]
ssl-ca      =/etc/mysql/ca-cert.pem
ssl-cert    =/etc/mysql/client-cert.pem
ssl-key     =/etc/mysql/client-key.pem

该配置在远程/服务器端有效(即,在远程数据库本地运行的php脚本能够使用生成的SSL证书建立连接)。

但是,虽然我可以在VPS上托管的PHP脚本和远程数据库之间建立不安全的连接,但当我尝试在相同的两个系统之间建立SSL连接时,我得到了一个错误。

如果我尝试使用以下命令行连接到远程数据库:

mysql -h hostIP --ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem –u ssluser –p

我得到了错误:

ERROR 2026 (HY000): SSL connection error: Unable to get private key

当我尝试使用以下命令通过php脚本连接到服务器时,我得到了相同的错误:

<?php
 $link = mysqli_init();

 $key   = '/home/userName/etc/mysql/certs/client-key.pem' ; 
 $cert  = '/home/userName/etc/mysql/certs/client-cert.pem'; 
 $ca    = '/home/userName/etc/mysql/certs/ca-cert.pem';
 $capath = NULL;
 $cipher = NULL;

 mysqli_ssl_set ( $link , $key , $cert , $ca , $capath , $cipher );
 mysqli_real_connect ($link, $host, $user, $pass, $schema, 3306, NULL, MYSQLI_CLIENT_SSL);
?>

导致错误的结果:

(HY000/2026): SSL connection error: Unable to get private key

我已经尝试按照(forums.mysql.com/read.php?11,400856,401127)进行修复,但进行此更改会导致“分段错误”。

我是不是漏掉了什么步骤?我做错了什么?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17704325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档