Можете да посочите някои mysql2 SSL параметри
чрез DATABASE_URL
конфигурация. Те ще бъдат добавени като елементи към динамичната database.yml
които се генерират по време на процеса на изграждане на Heroku и така те ще бъдат предадени, когато се създадат mysql2 връзки.
Единственият параметър, който трябва да предадете, за да работи това, е sslca
(да не се бърка с sslcapath
).
1. Изтеглете сертификат за Amazon RDS CA и го свържете с приложението си.
(Редактиране) Amazon ще се въртящ се този сертификат през март 2015 г. Ще ви трябва новият файл от тази страница вместо от тази.
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.