Mysql2::Error (SSL connection error: ASN: bad other signature confirmation):
我正在制作管理网站。环境是Rails 4.2和Ruby 2.2,将AWS RDS与Heroku服务器连接起来。 我不知道为什么会出现这个错误。它突然出现了。我找不到除此之外的任何错误。虽然我两天前通过了我的代码,但这次我收到了这个错误。(这两天我没有触及此代码。) 你想出任何解决这个问题的想法吗?
谢谢!
答案 0 :(得分:25)
对我而言,这与2015年4月3日发生的RDS SSL证书轮换有关。
但是,在我的情况下,仅使用根证书不起作用,我也必须为我的区域使用中间证书。详细说明:
下载新的根证书https://s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem。将它放入应用程序的config目录中。
下载数据库区域的中间证书 here。我不得不使用美国东部,但你必须选择适合你所在地区的那个。
这是关键步骤。您需要将中间证书和根证书合并到一个文件中,以便中间证书位于根证书之上,从而形成证书链。使用文本编辑器打开中间证书,复制其内容,然后将其粘贴到根证书上方的config / rds-ca-2015-root.pem中。因此,完成后,config / rds-ca-2015-root.pem应该是中间证书,后跟根证书,所有这些都在此文件中。
获取您当前的数据库网址
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。 祝好运!
答案 1 :(得分:0)
四年后(2019年),AWS再次轮换了CA证书,符合预期。
建议RDS用户在2019-11-01之前从2015证书转换为2019证书,并“不迟于” 2020-02-05。 2015证书将于2020-03-05到期。
我根据RDS的Rotating Your SSL/TLS Certificate指南使用了以下过程。
config
中
rds-ca-2019-root.pem
heroku maintenance:on
rds-ca-2019
heorku config:set DATABASE_URL=mysql2://myuser:mypassword@myhost.rds.amazonaws.com/mydb?sslca=config/rds-ca-2019-root.pem
heroku maintenance:off
此程序有许多合理的变体,这正是对我有用的方法。希望对您有所帮助。