Mysql
 sql >> Database >  >> RDS >> Mysql

Ottenere Mysql2::Error (errore di connessione SSL:ASN:cattiva altra conferma della firma) sull'app Heroku con AWS RDS

Per me, questo ha avuto a che fare con la rotazione del certificato SSL RDS avvenuta il 3 aprile 2015.

Tuttavia, nel mio caso, il solo utilizzo del certificato radice non ha funzionato e ho dovuto utilizzare anche un certificato intermedio per la mia regione. Dettagli:

  1. Accedi alla console AWS rds e riavvia l'istanza RDS.

  2. Scarica il nuovo certificato radice https://s3.amazonaws. com/rds-downloads/rds-ca-2015-root.pem . Inseriscilo nella directory di configurazione della tua app.

  3. Scarica il certificato intermedio per la tua regione del databasequi . Ho dovuto usare quello degli Stati Uniti orientali, ma dovrai scegliere quello per la tua regione.

  4. Questo è il passaggio chiave. È necessario combinare il certificato intermedio e il certificato radice in un unico file in modo che il certificato intermedio si trovi sopra il certificato radice, formando una catena di certificati. Aprire il certificato intermedio utilizzando un editor di testo, copiarne il contenuto e incollarlo in config/rds-ca-2015-root.pem, in alto, sopra il certificato radice. Quindi, al termine, config/rds-ca-2015-root.pem dovrebbe essere il certificato intermedio seguito dal certificato radice, tutto in questo file.

  5. Ottieni l'URL del tuo database corrente

heroku config 

e quindi cerca la proprietà DATABASE_URL

  1. Aggiorna l'URL del database per utilizzare il nuovo file del certificato. Tutto quello che dovresti cambiare è il nome del certificato (poiché ora si chiamards-ca-2015-root.pem)
heroku 
config:add DATABASE_URL="mysql2://DB_NAME:[email protected]_URL/DB_NAME?sslca=config/rds-ca-2015-root.pem"
  1. Imposta le modifiche e ridistribuisci in Heroku.