使用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证书轮换有关。

但是,在我的情况下,只使用根证书不起作用,我也必须使用我的区域的中间证书。 细节:

  1. 进入AWS rds控制台并重新启动RDS实例。
  2. 下载新的根证书https://s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem 。 将它放入应用程序的config目录中。

  3. 在此处下载数据库区域的中间证书。 我不得不使用美国东部,但你必须选择适合你所在地区的那个。

  4. 这是关键的一步。 您需要将中间证书和根证书合并到一个文件中,以便中间证书位于根证书之上,从而形成证书链。 使用文本编辑器打开中间证书,复制其内容,然后将其粘贴到根证书上方的config / rds-ca-2015-root.pem中。 因此,完成后,config / rds-ca-2015-root.pem应该是中间证书,后跟根证书,所有这些都在此文件中。

  5. 获取当前数据库url heroku config ,然后查找DATABASE_URL属性

  6. 更新数据库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"

  7. 提交更改并重新部署到Heroku。 祝好运!