Puoi specificare alcuni parametri SSL mysql2
tramite il DATABASE_URL config. Verranno aggiunti come elementi al database.yml dinamico che viene generato durante il processo di compilazione di Heroku, e quindi verranno passati quando verranno create le connessioni mysql2.
L'unico parametro che devi passare per farlo funzionare è sslca (da non confondere con sslcapath ).
(Modifica) Amazon sarà rotante questo certificato a marzo 2015. Avrai bisogno del nuovo file di quella pagina invece di questo.
curl https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem > ./config/amazon-rds-ca-cert.pem
DATABASE_URL per passare sslca :
heroku config:add DATABASE_URL="mysql2://username:example@sqldat.com/dbname?sslca=config/amazon-rds-ca-cert.pem -a <app_id>
Il percorso relativo è importante, vedi sotto.
Questo è tutto! Ora che SSL funziona, potresti voler imporre che tutte le connessioni con quell'utente consentano solo SSL:
GRANT USAGE ON dbname.* TO 'username'@'%' REQUIRE SSL;
Risoluzione dei problemi
Assicurati di passare un percorso relativo a sslca ! Altrimenti, rake assets:precompile potrebbe interrompersi con un errore SSL. Se ricevi un messaggio di errore come:
SSL connection error: ASN: bad other signature confirmation
o anche solo:
SSL connection error
...quindi probabilmente c'è qualcosa di sbagliato nel modo in cui viene fatto riferimento al file CA cert.