Anda dapat menentukan beberapa parameter SSL mysql2
melalui DATABASE_URL
konfigurasi Mereka akan ditambahkan sebagai item ke database.yml
dinamis yang dihasilkan selama proses pembuatan Heroku, sehingga akan diteruskan saat koneksi mysql2 dibuat.
Satu-satunya parameter yang harus Anda lewati agar ini berfungsi adalah sslca
(jangan bingung dengan sslcapath
).
1. Unduh Sertifikat CA Amazon RDS dan gabungkan dengan aplikasi Anda.
(Sunting) Amazon akan berputar sertifikat ini pada bulan Maret 2015. Anda akan memerlukan file baru dari halaman itu alih-alih yang ini.
curl https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem > ./config/amazon-rds-ca-cert.pem
2. Tambahkan file ke git, dan terapkan ulang ke Heroku.
3. Ubah DATABASE_URL
untuk melewati sslca
:
heroku config:add DATABASE_URL="mysql2://username:[email protected]/dbname?sslca=config/amazon-rds-ca-cert.pem -a <app_id>
Jalur relatif di sana penting—lihat di bawah.
Itu dia! Sekarang setelah SSL berfungsi, Anda mungkin ingin menerapkan bahwa semua koneksi dengan pengguna tersebut hanya mengizinkan SSL:
GRANT USAGE ON dbname.* TO 'username'@'%' REQUIRE SSL;
Pemecahan Masalah
Pastikan untuk meneruskan jalur relatif ke sslca
! Jika tidak, rake assets:precompile
mungkin rusak dengan kesalahan SSL. Jika Anda menerima pesan kesalahan seperti:
SSL connection error: ASN: bad other signature confirmation
atau bahkan hanya:
SSL connection error
...maka kemungkinan ada yang salah dengan cara file sertifikat CA direferensikan.