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

时间:2015-10-06 14:17:12

标签: mysql ssl amazon-web-services amazon-ec2

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

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)

我知道MySQL SSL documentation上记录了此错误,但这不是问题,因为'旧'实例可以使用相同的客户端证书/密钥连接正常。

必须导致问题的两个实例之间存在一个区别。 新实例支持弹性IP

有人可以建议我如何解决这个问题吗?

只是为了确认,这是一个SSL连接问题。如果我删除了用户的SSL连接要求,我可以从新实例成功连接。

新旧客户端实例之间实际上存在另一个差异。新实例有:

  

mysql Ver 14.14使用readline 5.1为Linux(x86_64)分发5.5.45

...而旧实例有:

  

mysql Ver 14.14使用readline 5.1为Linux(x86_64)分发5.5.42

openssl在两台机器上都是相同的版本(1.0.1)。虽然新实例是旧实例的克隆(它们都运行亚马逊Linux操作系统),但我已将新实例操作系统更新为2015.03版本,而旧实例操作系统正在运行2014.09 。所以我猜这个问题可能是一些升级的依赖。

0 个答案:

没有答案