Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Abrufen von Mysql2::Error (SSL-Verbindungsfehler:ASN:schlechte andere Signaturbestätigung) in der Heroku-App mit AWS RDS

Für mich hatte dies mit der Rotation des RDS-SSL-Zertifikats am 3. April 2015 zu tun.

In meinem Fall hat es jedoch nicht funktioniert, nur das Stammzertifikat zu verwenden, und ich musste auch ein Zwischenzertifikat für meine Region verwenden. Einzelheiten:

  1. Rufen Sie die AWS rds-Konsole auf und starten Sie Ihre RDS-Instance neu.

  2. Laden Sie das neue Stammzertifikat https://s3.amazonaws herunter. com/rds-downloads/rds-ca-2015-root.pem . Legen Sie es in das Konfigurationsverzeichnis Ihrer App.

  3. Laden Sie das Zwischenzertifikat für Ihre Datenbankregion hier herunter . Ich musste die USA Ost verwenden, aber Sie müssen die für Ihre Region auswählen.

  4. Dies ist der entscheidende Schritt. Sie müssen das Zwischenzertifikat und das Stammzertifikat in einer Datei kombinieren, sodass das Zwischenzertifikat über dem Stammzertifikat liegt und eine Zertifikatskette bildet. Öffnen Sie das Zwischenzertifikat mit einem Texteditor, kopieren Sie seinen Inhalt und fügen Sie ihn in config/rds-ca-2015-root.pem oben über dem Stammzertifikat ein. Nachdem Sie fertig sind, sollte config/rds-ca-2015-root.pem das Zwischenzertifikat sein, gefolgt vom Stammzertifikat, alles in dieser Datei.

  5. Holen Sie sich Ihre aktuelle Datenbank-URL

heroku config 

und suchen Sie dann nach der Eigenschaft DATABASE_URL

  1. Aktualisieren Sie Ihre Datenbank-URL, um die neue Zertifikatsdatei zu verwenden. Alles, was Sie ändern müssen, ist der Name des Zertifikats (da es jetzt rds-ca-2015-root.pem heißt)
heroku 
config:add DATABASE_URL="mysql2://DB_NAME:[email protected]_URL/DB_NAME?sslca=config/rds-ca-2015-root.pem"
  1. Übernehmen Sie die Änderungen und stellen Sie sie erneut in Heroku bereit.