some mysql2 SSL params, DATABASE_URL
yapılandırması ile belirtebilirsiniz. Heroku oluşturma işlemi sırasında oluşturulan dinamik database.yml
öğelerine öğeler olarak eklenecek ve böylece mysql2 bağlantıları oluşturulduğunda geçirilecekler.
Bu işe çalışması için geçmeniz gereken tek paragraf sslca
(sslcapath
ile karıştırılmamalıdır).
1. Amazon RDS CA certificate'u indirin ve uygulamanızla paketleyin.
(Düzenle) Amazon, Mart 2015'te rotating this certificate olacaktır. Bunun yerine, bu sayfadan yeni dosyaya ihtiyacınız olacak.
2.
curl https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem > ./config/amazon-rds-ca-cert.pem
git için dosyayı ekleyin ve Heroku için yeniden dağıtın.
3. Değişim DATABASE_URL
sslca
geçmek:
heroku config:add DATABASE_URL="mysql2://username:[email protected]/dbname?sslca=config/amazon-rds-ca-cert.pem -a <app_id>
göreli yolu yoktur aşağıya önemli görülmesi.
Bu kadar! Şimdi SSL çalışma olduğunu, o kullanıcının tüm bağlantıları yalnızca SSL izin vermesini zorlamak isteyebilirsiniz:
GRANT USAGE ON dbname.* TO 'username'@'%' REQUIRE SSL;
Giderme
sslca
için göreli bir yol geçmek emin olun! Aksi halde, rake assets:precompile
bir SSL hatasıyla bozulabilir. Hatta sadece
SSL connection error: ASN: bad other signature confirmation
ya: sizin gibi bir hata alırsanız
SSL connection error
...O zaman CA cert dosyasının nasıl başvurulduğu konusunda bir sorun var demektir.
Teşekkürler Neil. Bu harika çalıştı! Daha özel olarak, benim Heroku config DATABASE_URL bir şey gibi görünüyor: mysql2: // kullanıcı adı: password @ hostname/databasename? Sslca =/path/to/ca.pem – Nathan