sql >> Databáze >  >> RDS >> Mysql

Získávání Mysql2::Error (chyba připojení SSL:ASN:špatné potvrzení jiného podpisu) v aplikaci Heroku s AWS RDS

Pro mě to mělo co do činění s rotací RDS SSL certifikátu, ke které došlo 3. dubna 2015.

V mém případě však nefungovalo pouhé použití kořenového certifikátu a musel jsem použít i zprostředkující certifikát pro svůj region. Podrobnosti:

  1. Přejděte do konzoly AWS rds a restartujte instanci RDS.

  2. Stáhněte si nový kořenový certifikát https://s3.amazonaws. com/rds-downloads/rds-ca-2015-root.pem . Vložte jej do konfiguračního adresáře vaší aplikace.

  3. Stáhněte si zprostředkující certifikát pro svou oblast databázezde . Musel jsem použít východ USA, ale budete si muset vybrat ten pro svůj region.

  4. Toto je klíčový krok. Je třeba zkombinovat zprostředkující certifikát a kořenový certifikát do jednoho souboru tak, aby se zprostředkující certifikát nacházel nad kořenovým certifikátem a vytvořil řetězec certifikátů. Otevřete prostřední certifikát pomocí textového editoru, zkopírujte jeho obsah a vložte jej do config/rds-ca-2015-root.pem nahoře nad kořenový certifikát. Takže až budete hotovi, config/rds-ca-2015-root.pem by měl být zprostředkujícím certifikátem následovaným kořenovým certifikátem, vše v tomto souboru.

  5. Získejte adresu URL aktuální databáze

heroku config 

a poté vyhledejte vlastnost DATABASE_URL

  1. Aktualizujte adresu URL databáze, aby používala nový soubor certifikátu. Vše, co byste měli změnit, je název certifikátu (protože se nyní nazývá 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"
  1. Potvrdit změny a znovu je nasadit do Heroku.


  1. Escape raw SQL dotazy v Laravel 4

  2. SQL Server ekvivalentní datovému typu MySQL enum?

  3. Vyberte záznamy z NOW() -1 den

  4. Jak funguje pg_typeof() v PostgreSQL