2015-04-05 25 views
4

Mysql2::Error (SSL connection error: ASN: bad other signature confirmation):獲取Mysql2 ::錯誤(SSL連接錯誤:壞的其他簽字確認:ASN)在Heroku應用程序與AWS RDS

我想提出一個管理網站。環境是Rails 4.2和Ruby 2.2,將AWS RDS與Heroku服務器連接起來。 我不知道爲什麼會出現此錯誤。它突然出現。除此之外,我找不到任何錯誤。雖然我兩天前通過了我的代碼,但這次我得到了這個錯誤(這兩天我沒有碰到這個代碼)。 你有什麼想法來解決這個問題嗎?

謝謝!

+0

然後,我想這個錯誤是由[SSL證書旋轉](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL引起的。迴轉)。我確認ssl證書已更新,rds-ca-2015,並已重新啓動,但沒有任何更改。我仍然堆放在一起!請幫幫我! – 2015-04-06 06:35:25

回答

23

對於我來說,這不得不做的RDS SSL證書轉動所發生在4月3日,2015年

然而,在我的情況下,只使用根證書沒有工作,我不得不使用我的地區的中級證書也是如此。詳細信息:

  1. 進入AWS RDS控制檯並重新啓動RDS實例。
  2. 下載新的根證書https://s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem。把它放到你的應用程序的配置目錄中。

  3. 下載數據庫區域的中間證書 here。我不得不使用美國的東部地區,但你必須爲你的地區選擇一個。

  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:[email protected]_URL/DB_NAME?sslca=config/rds-ca-2015-root.pem"

  7. 提交更改並重新部署到Heroku的。 祝你好運!

+0

謝謝@guidoprincess!我可以解決這個鬧鬼的問題。如果您沒有通知我,我從來不知道需要添加中間證書。除此之外,您是否知道爲什麼我沒有將中間證書添加到證書文件的代碼已經過了2015年4月3日? – 2015-04-06 09:16:44

+1

簡短的回答:不:)。長久的回答:證書在4月3日發生了變化,我認爲這種變化帶來了某種新的高度安全性,需要一箇中間證書!另外,如果能幫助您,請您接受正確答案!謝謝。 – gregkerzhner 2015-04-06 09:31:58

+0

感謝你的接受。祝你有美好的一天。 – gregkerzhner 2015-04-06 09:37:47

相關問題