Vous pouvez spécifier certains paramètres SSL mysql2
via DATABASE_URL
configuration. Ils seront ajoutés en tant qu'éléments au database.yml
dynamique qui est généré pendant le processus de construction Heroku, et ils seront donc transmis lors de la création des connexions mysql2.
Le seul paramètre que vous devez passer pour que cela fonctionne est sslca
(à ne pas confondre avec sslcapath
).
(Modifier) Amazon sera rotation ce certificat en mars 2015. Vous aurez besoin du nouveau fichier de cette page au lieu de celui-ci.
curl https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem > ./config/amazon-rds-ca-cert.pem
DATABASE_URL
pour passer sslca
:
heroku config:add DATABASE_URL="mysql2://username:[email protected]/dbname?sslca=config/amazon-rds-ca-cert.pem -a <app_id>
Le chemin relatif y est important, voir ci-dessous.
C'est ça! Maintenant que SSL fonctionne, vous souhaiterez peut-être imposer que toutes les connexions avec cet utilisateur n'autorisent que SSL :
GRANT USAGE ON dbname.* TO 'username'@'%' REQUIRE SSL;
Dépannage
Assurez-vous de passer un chemin relatif à sslca
! Sinon, rake assets:precompile
peut rompre avec une erreur SSL. Si vous recevez une erreur comme :
SSL connection error: ASN: bad other signature confirmation
ou même juste :
SSL connection error
... alors il y a probablement quelque chose qui ne va pas avec la façon dont le fichier de certificat CA est référencé.