Immer Mysql2::Error (SSL-Verbindung Fehler: ASN: schlecht weitere Signatur-Bestätigung) auf Heroku App mit AWS RDS
Mysql2::Error (SSL connection error: ASN: bad other signature confirmation):
Ich mache eine Website Verwaltung. Die Umgebung ist Rails 4.2 und Ruby 2.2, Anschluss AWS RDS mit Heroku-server.
Ich weiß nicht, warum immer diese Fehlermeldung. Es erschien plötzlich. Ich kann nicht finden Fehler, die andere als das. Obwohl ich an meinen codes vor zwei Tagen, bekam ich diese Fehlermeldung diesmal.(Ich habe noch nicht berührte diesen code während der zwei Tage.)
Sie kommen mit Ideen, um dieses problem zu lösen?
Dank!
- Und dann ich dachte, dieser Fehler wurde dadurch verursacht, dass SSL-Zertifikat Rotation. Ich bestätigte ssl-Zertifikat aktualisiert, rds-ca-2015, und bereits neu gestartet, aber es ändert sich nichts. Ich bin immer noch gestapelt! Bitte helfen Sie mir!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für mich, dies hatte zu tun mit der RDS-SSL-Zertifikat-Rotation-das geschah am 3. April 2015.
Jedoch, in meinem Fall, nur mit dem root-Zertifikat hat nicht funktioniert, und ich musste ein intermediate Zertifikat für meine region. Details:
Laden Sie die neue root-Zertifikat https://s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem. Legen Sie Sie in das config-Verzeichnis der app.
Laden Sie das Zwischenzertifikat für Ihre Datenbank region
hier. Ich musste das US-east, aber Sie müssen wählen Sie die für Ihre region.
Dies ist der entscheidende Schritt. Sie müssen kombinieren die Zwischenzertifikate und das root-Zertifikat in eine Datei, so dass die intermediate-Zertifikat ist über das root-Zertifikat, bilden eine Zertifikatkette. Öffnen Sie das intermediate-Zertifikat mit einem Texteditor, kopieren Sie den Inhalt, und fügen Sie Sie in config/rds-ca-2015-root.pem, an der Spitze, vor der Wurzel cetrtificate. So, nachdem Sie fertig sind, config/rds-ca-2015-root.pem sollte das intermediate-Zertifikat, gefolgt von dem root-Zertifikat, werden alle in dieser Datei.
Holen Sie sich Ihre aktuelle Datenbank-url
heroku config
und dann schauen Sie für die DATABASE_URL Eigenschaft
Aktualisieren Sie Ihre Datenbank-URL an, die das neue Zertifikat-Datei. Alle sollten Sie haben, ändern Sie den Namen des Zertifikats (seit der jetzt heißt
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"
Übernehmen Sie die änderungen und erneutes bereitstellen zu Heroku.
Viel Glück!
fs.readFileSync
liest nur das erste Zertifikat und kann es nicht Lesen, Zertifikat Ketten. Ich habe Stunden damit verbracht, einfach nur, um herauszufinden, warum mysql liest nur die 1. Zertifikat. Zum Glück konnte ich Lesen das cert-Ketten durch die Verwendung von arrays zum Lesen der Datei ein, oder verwenden Sie ein Modul, wie split-ca.Vier Jahre später (2019) und AWS-drehen-CA-CERT wieder, wie erwartet.
RDS-wird dem Benutzer empfohlen, die Umschaltung zwischen den 2015 cert zu der 2019 cert durch 2019-11-01, und "nicht später als" 2020-02-05. 2015 Zertifikate laufen auf 2020-03-05.
Ich habe folgende Prozedur, basierend auf RDS' Drehen Sie Ihr SSL/TLS Zertifikat guide.
config
rds-ca-2019-root.pem
heroku maintenance:on
rds-ca-2019
heorku config:set DATABASE_URL=mysql2://myuser:[email protected]/mydb?sslca=config/rds-ca-2019-root.pem
heroku maintenance:off
Gibt es viele sinnvolle Varianten zu diesem Verfahren, das ist genau das, was für mich gearbeitet. Hoffe, es hilft.