Můžete zadat některé parametry mysql2 SSL
prostřednictvím DATABASE_URL
config. Budou přidány jako položky do dynamického database.yml
které se generují během procesu sestavování Heroku, a tak budou předány při vytvoření připojení mysql2.
Jediný parametr, který musíte zadat, aby to fungovalo, je sslca
(neplést s sslcapath
).
1. Stáhněte si Amazon RDS CA certifikát a spojte jej se svou aplikací.
(Upravit) Amazon se bude otáčet tento certifikát v březnu 2015. Budete potřebovat nový soubor z této stránky, nikoli z této.
curl https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem > ./config/amazon-rds-ca-cert.pem
2. Přidejte soubor do git a znovu jej nasaďte do Heroku.
3. Změňte DATABASE_URL
předat sslca
:
heroku config:add DATABASE_URL="mysql2://username:[email protected]/dbname?sslca=config/amazon-rds-ca-cert.pem -a <app_id>
Důležitá je relativní cesta – viz níže.
A je to! Nyní, když funguje SSL, možná budete chtít vynutit, aby všechna připojení s tímto uživatelem povolovala pouze SSL:
GRANT USAGE ON dbname.* TO 'username'@'%' REQUIRE SSL;
Odstraňování problémů
Ujistěte se, že jste do sslca
předali relativní cestu ! Jinak rake assets:precompile
se může rozbít s chybou SSL. Pokud se zobrazí chyba jako:
SSL connection error: ASN: bad other signature confirmation
nebo dokonce jen:
SSL connection error
...pak je pravděpodobně něco v nepořádku s odkazem na soubor certifikátu CA.