いくつかのmysql2SSLパラメーター
を指定できます DATABASE_URL
を介して 構成。それらは動的なdatabase.yml
にアイテムとして追加されます これはHerokuビルドプロセス中に生成されるため、mysql2接続が作成されるときに渡されます。
これが機能するために渡す必要がある唯一のパラメータは、sslca
です。 (sslcapath
と混同しないでください 。
1。 AmazonRDSCA証明書> アプリにバンドルします。
(編集)Amazonは回転しますこの証明書 2015年3月。このページではなく、そのページの新しいファイルが必要になります。
curl https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem > ./config/amazon-rds-ca-cert.pem
2。ファイルをgitに追加し、Herokuに再デプロイします。
3。 DATABASE_URL
を変更します sslca
を渡す :
heroku config:add DATABASE_URL="mysql2://username:[email protected]/dbname?sslca=config/amazon-rds-ca-cert.pem -a <app_id>
そこでの相対的な経路は重要です。以下を参照してください。
それでおしまい! SSLが機能するようになったので、そのユーザーとのすべての接続でSSLのみを許可するように強制することができます。
GRANT USAGE ON dbname.* TO 'username'@'%' REQUIRE SSL;
トラブルシューティング
必ずsslca
への相対パスを渡してください !それ以外の場合は、rake assets:precompile
SSLエラーで破損する可能性があります。次のようなエラーが発生した場合:
SSL connection error: ASN: bad other signature confirmation
または単に:
SSL connection error
...次に、CA証明書ファイルの参照方法に問題がある可能性があります。