Du kan angive nogle mysql2 SSL-parametre
gennem DATABASE_URL
config. De vil blive tilføjet som elementer til den dynamiske database.yml
der genereres under Heroku-byggeprocessen, og så vil de blive videregivet, når mysql2-forbindelser oprettes.
Den eneste parameter du skal bestå for at dette virker, er sslca
(ikke at forveksle med sslcapath
).
1. Download Amazon RDS CA-certifikatet og sæt det sammen med din app.
(Rediger) Amazon vil roterende dette certifikat i marts 2015. Du skal bruge den nye fil fra den side i stedet for denne.
curl https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem > ./config/amazon-rds-ca-cert.pem
2. Tilføj filen til git, og geninstaller til Heroku.
3. Skift DATABASE_URL
for at sende sslca
:
heroku config:add DATABASE_URL="mysql2://username:[email protected]/dbname?sslca=config/amazon-rds-ca-cert.pem -a <app_id>
Den relative vej dertil er vigtig – se nedenfor.
Det er det! Nu hvor du har SSL til at fungere, vil du måske gennemtvinge, at alle forbindelser med den bruger kun tillader SSL:
GRANT USAGE ON dbname.* TO 'username'@'%' REQUIRE SSL;
Fejlfinding
Sørg for at videregive en relativ sti til sslca
! Ellers rake assets:precompile
kan bryde med en SSL-fejl. Hvis du modtager en fejl som:
SSL connection error: ASN: bad other signature confirmation
eller endda bare:
SSL connection error
...så er der sandsynligvis noget galt med, hvordan CA-certificeringsfilen refereres.