sql >> Databasteknik >  >> RDS >> Mysql

Ange SSL för Heroku extern MySQL-databasanslutning

Du kan ange några mysql2 SSL-parametrar genom DATABASE_URL config. De kommer att läggas till som objekt i den dynamiska database.yml som genereras under Heroku-byggprocessen, så att de skickas när mysql2-anslutningar skapas.

Den enda param du behöver skicka för att detta ska fungera är sslca (inte att förväxla med sslcapath ).

1. Ladda ner Amazon RDS CA-certifikatet och kombinera den med din app.

(Redigera) Amazon kommer att roterande detta certifikat i mars 2015. Du behöver den nya filen från den sidan istället för den här.

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

2. Lägg till filen i git och distribuera om till Heroku.

3. Ändra DATABASE_URL för att skicka sslca :

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

Den relativa vägen dit är viktig – se nedan.

Det är allt! Nu när du har SSL som fungerar kanske du vill tvinga fram att alla anslutningar med den användaren endast tillåter SSL:

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

Felsökning

Se till att skicka en relativ sökväg till sslca ! Annars rake assets:precompile kan gå sönder med ett SSL-fel. Om du får ett felmeddelande som:

SSL connection error: ASN: bad other signature confirmation

eller till och med bara:

SSL connection error

...så är det troligtvis något fel med hur CA-certifikatfilen refereras.



  1. LEAST() Funktion i PostgreSQL

  2. Hur väljer man datum för de senaste 30 dagarna i MySQL även om datumen inte finns i mysql?

  3. Hur lagrar man unicode i MySQL?

  4. Hur man skapar en databas i MySQL Workbench med hjälp av GUI