使用AWS RDS在Heroku App上获取Mysql2 :: Error(SSL连接错误:ASN:错误的其他签名确认)
Mysql2::Error (SSL connection error: ASN: bad other signature confirmation):
我正在建立一个管理网站。 环境是Rails 4.2和Ruby 2.2,将AWS RDS与Heroku服务器连接起来。 我不知道为什么会出现这个错误。 它突然出现了。 我找不到除此之外的任何错误。 虽然我两天前通过了我的代码,但这次我收到了这个错误。(这两天我没有碰到这个代码。)你想出任何想法来解决这个问题吗?
谢谢!
对我而言,这与2015年4月3日发生的RDS SSL证书轮换有关。
但是,在我的情况下,只使用根证书不起作用,我也必须使用我的区域的中间证书。 细节:
- 进入AWS rds控制台并重新启动RDS实例。
-
下载新的根证书https://s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem 。 将它放入应用程序的config目录中。
-
在此处下载数据库区域的中间证书。 我不得不使用美国东部,但你必须选择适合你所在地区的那个。
-
这是关键的一步。 您需要将中间证书和根证书合并到一个文件中,以便中间证书位于根证书之上,从而形成证书链。 使用文本编辑器打开中间证书,复制其内容,然后将其粘贴到根证书上方的config / rds-ca-2015-root.pem中。 因此,完成后,config / rds-ca-2015-root.pem应该是中间证书,后跟根证书,所有这些都在此文件中。
-
获取当前数据库url
heroku config
,然后查找DATABASE_URL属性 -
更新数据库URL以使用新证书文件。 您应该更改的是证书的名称(因为它现在称为rds-ca-2015-root.pem)
heroku config:add DATABASE_URL="mysql2://DB_NAME:DB_PASSWORD@DB_URL/DB_NAME?sslca=config/rds-ca-2015-root.pem"
-
提交更改并重新部署到Heroku。 祝好运!
- 从AWS EC2实例发送电子邮件(SES是强制性的?)
- 缺少必需的参数:ras测试中的aws_access_key_id,aws_secret_access_key
- 如何在Amazon Elastic Beanstalk上部署rails项目时自动重启delayed_job?
- ruby:没有这样的文件加载 – 运行cap rubber时的ubygems(LoadError):create_staging
- 无法使用HMAC SHA256从示例中重现AWS签名
- 衡量SAAS App带宽使用情况
- 使用带ruby的memcache客户端
- AWS Rails安装失败:activesupport需要Ruby版本> = 2.2.2
- 使用AWS Elastic Beanstalk和Ruby容器设置私有Github访问