Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AWS EC2弹性IP导致使用SSL连接MySQL服务器时出现问题_Mysql_Ssl_Amazon Web Services_Amazon Ec2 - Fatal编程技术网

AWS EC2弹性IP导致使用SSL连接MySQL服务器时出现问题

AWS EC2弹性IP导致使用SSL连接MySQL服务器时出现问题,mysql,ssl,amazon-web-services,amazon-ec2,Mysql,Ssl,Amazon Web Services,Amazon Ec2,我有一个MySQL服务器在AWS EC2实例上运行。我已经创建了一个专门用于从特定IP远程访问的用户。此用户的所有访问都需要SSL加密(在授予特权命令期间通过需要SSL选项) MySQL服务器启用了SSL,我已经创建了所有必要的服务器/客户端证书和密钥,我已经将客户端证书/密钥放在白名单上的机器(另一个EC2实例)上,并用证书/密钥的位置更新了/etc/my.cnf 从命令行连接,例如mysql-u user-p-h theserver.com工作正常 现在,我正在尝试从另一台机器(也是一个EC

我有一个MySQL服务器在AWS EC2实例上运行。我已经创建了一个专门用于从特定IP远程访问的用户。此用户的所有访问都需要SSL加密(在
授予特权
命令期间通过
需要SSL
选项)

MySQL服务器启用了SSL,我已经创建了所有必要的服务器/客户端证书和密钥,我已经将客户端证书/密钥放在白名单上的机器(另一个EC2实例)上,并用证书/密钥的位置更新了
/etc/my.cnf

从命令行连接,例如mysql-u user-p-h theserver.com工作正常

现在,我正在尝试从另一台机器(也是一个EC2实例)连接到MySQL服务器,这是我成功连接的机器的克隆。它使用完全相同的客户端证书/密钥,在
/etc/my.cnf
中具有相同的条目。我已经在服务器实例上端口3306的AWS入站防火墙规则中白名单了新实例IP。我在MySQL服务器上为新实例IP添加了一个新用户,其权限和密码与以前相同

但是运行mysql-u user-p-h theserver.com现在会产生以下结果:

ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)
我知道此错误记录在上,但这不是问题所在,因为“旧”实例可以使用相同的客户端证书/密钥正常连接

导致问题的两个实例之间有一个区别新实例位于弹性IP后面

有人能建议我如何解决这个问题吗

请确认,这是一个SSL连接问题。如果我放弃用户的SSL连接要求,我可以从新实例成功连接

新客户机实例和旧客户机实例之间实际上还有另一个区别。新实例具有:

mysql版本14.14发行版5.5.45,适用于Linux(x86_64),使用readline 5.1

…而旧实例具有:

mysql版本14.14发行版5.5.42,适用于Linux(x86_64),使用readline 5.1


openssl
在两台机器上都是相同的版本(1.0.1)。虽然新实例是旧实例的克隆(它们都运行Amazon Linux操作系统),但我已将新实例操作系统更新为
2015.03
版本,而旧实例运行的是
2014.09
。因此,我猜问题可能是某个依赖项得到了升级。

在客户端计算机上解析服务器的IP地址是什么?从“新”实例运行的AWS私有IP或外部弹性IP?显示服务器实例的弹性IP。对不起,我应该提到服务器也在使用弹性IP,但这不重要,因为“旧”实例连接良好。从服务器上运行
dig new.instance.com
会显示客户端的弹性IP。请澄清。从两台非mysql机器上运行
dig server.com
会为mysql机器返回相同的IP?是的,没错。我只是仔细检查了一下。弹性IP很可能是个骗局。MySQL SSL中的错误报告几乎毫无价值,所以该消息可以是任何内容。比较这两台机器上的客户端版本时,
$mysql-V
怎么样?您是否在两个系统上使用完全相同的证书、密钥和ca文件?