尝试通过mysql CLI连接到mysql Aurora时出现SSL连接错误

时间:2015-08-13 22:48:52

标签: mysql ssl amazon-web-services amazon-rds amazon-rds-aurora

我将在前言中表示,当我不想通过SSL时,我可以连接到数据库实例。

我在这里遵循本指南

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connect.html

我已确保数据库实例面向公众。

VPC的安全组具有以下规则:

Type Protocol Port Range Source
MySQL/Aurora (3306) TCP (6) 3306 my_ip_address/32
MySQL/Aurora (3306) TCP (6) 3306 sg-security_group_name

其中security_group_name是我的EC2群集的安全组。

我正在使用我的极光群集的cluser端点。我已经删除了端口。我使用自制软件在我的机器上安装了mysql。这是我从本地机器(macbook)尝试的命令:

mysql -h blah-database-cluster.cluster-dfgdgfd.us-east-1.rds.amazonaws.com --ssl-ca=rds-ssl-ca-cert.pem --ssl-verify-server-cert

其中rds-ssl-ca-cert.pem是我从这里下载的文件:

http://s3.amazonaws.com/rds-downloads/rds-ssl-ca-cert.pem

我收到错误:

ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)

我尝试过创建一个新实例,重启等等,没有快乐。我的安全组是否需要某种https规则?

编辑:

进一步的线索。当我在本地运行mysql --ssl时它没有错误。但是,当我执行mysql show_variables时,它表示SSL为false,并且has_ssl和have_open_ssl变量不存在。这可能是问题吗?我通过homebrew包管理器为mac安装了本地mysql。

新编辑:

我重新安装了mysql(之前来自brew),现在直接来自oracle,当我尝试连接时,给出了一个不同的错误 - SSL连接错误:ASN:其他签名确认错误

4 个答案:

答案 0 :(得分:6)

  1. 目前,AWS Aurora文档链接到要使用的过期SSL证书,因此存在问题。这已得到AWS支持人员的确认。请改用:https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem

  2. 即使使用该证书,通过SSL连接到群集端点仍然不适用于使用mysql -h连接的命令行。如果我奇怪地从群集端点更改为实例端点,则可以正常工作。

  3. 奇怪的是,mysql workbench确实通过ssl连接到实例端点和集群端点。

答案 1 :(得分:0)

docs开始,对SSL连接的实例端点的限制是与证书关联的安全约束。

  

Amazon RDS创建SSL证书,并在Amazon RDS配置实例时在数据库实例上安装证书。这些证书由证书颁发机构签名。 SSL证书包括数据库实例端点作为SSL证书的公用名(CN),以防止欺骗攻击。因此,您无法使用数据库集群端点使用SSL连接到数据库集群的主实例。

答案 2 :(得分:0)

如果您不使用SSL,请使用带有--skip-ssl选项的mysql。如果没有任何帮助升级您的mysql客户端

答案 3 :(得分:0)