Mysql2::Error(SSL 连接错误:ASN:错误的其他签名确认):
我正在制作一个管理网站。环境是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 .将其放入您的应用程序的配置目录中。
为您的数据库区域下载中间证书 here .我不得不使用美国东部的,但你必须选择适合你所在地区的。
这是关键的一步。您需要将中间证书和根证书合并为一个文件,使中间证书位于根证书之上,形成一个证书链。使用文本编辑器打开中间证书,复制其内容,并将它们粘贴到根证书上方的 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。
关于mysql - 使用 AWS RDS 在 Heroku App 上获取 Mysql2::Error(SSL 连接错误:ASN:错误的其他签名确认),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29455830/