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:example@sqldat.com/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.