使用AWS RDS在Heroku应用程序上获取Mysql2 ::错误(SSL连接错误:ASN:错误的其他签名确认)

Tos*_*ota 6 mysql ssl ruby-on-rails heroku amazon-web-services

Mysql2::Error (SSL connection error: ASN: bad other signature confirmation):

我正在建立一个管理网站.环境是Rails 4.2和Ruby 2.2,将AWS RDS与Heroku服务器连接起来.我不知道为什么会出现这个错误.它突然出现了.我找不到除此之外的任何错误.虽然我两天前通过了我的代码,但这次我收到了这个错误.(这两天我没有碰到这个代码.)你想出任何想法来解决这个问题吗?

谢谢!

gre*_*ner 26

对我而言,这与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.祝好运!