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

Angiv SSL for Heroku ekstern MySQL-databaseforbindelse

Du kan angive nogle mysql2 SSL-parametre gennem DATABASE_URL config. De vil blive tilføjet som elementer til den dynamiske database.yml der genereres under Heroku-byggeprocessen, og så vil de blive videregivet, når mysql2-forbindelser oprettes.

Den eneste parameter du skal bestå for at dette virker, er sslca (ikke at forveksle med sslcapath ).

1. Download Amazon RDS CA-certifikatet og sæt det sammen med din app.

(Rediger) Amazon vil roterende dette certifikat i marts 2015. Du skal bruge den nye fil fra den side i stedet for denne.

curl https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem > ./config/amazon-rds-ca-cert.pem

2. Tilføj filen til git, og geninstaller til Heroku.

3. Skift DATABASE_URL for at sende sslca :

heroku config:add DATABASE_URL="mysql2://username:[email protected]/dbname?sslca=config/amazon-rds-ca-cert.pem -a <app_id>

Den relative vej dertil er vigtig – se nedenfor.

Det er det! Nu hvor du har SSL til at fungere, vil du måske gennemtvinge, at alle forbindelser med den bruger kun tillader SSL:

GRANT USAGE ON dbname.* TO 'username'@'%' REQUIRE SSL;

Fejlfinding

Sørg for at videregive en relativ sti til sslca ! Ellers rake assets:precompile kan bryde med en SSL-fejl. Hvis du modtager en fejl som:

SSL connection error: ASN: bad other signature confirmation

eller endda bare:

SSL connection error

...så er der sandsynligvis noget galt med, hvordan CA-certificeringsfilen refereres.



  1. Brug Firebase DB med lokal DB

  2. Hvordan sender man sessionsvariabler i JDBC url korrekt?

  3. Oracles containere til J2EE (OC4J) i R12

  4. Hvad er den mest kompakte måde at gemme diffs på i en database?