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:[email protected]/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.