sql >> Databáze >  >> RDS >> Mysql

Zadejte SSL pro připojení k externí databázi Heroku MySQL

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.



  1. MySQL Alter Table Přidat pole před nebo za pole, které již existuje

  2. Mysql - Jak porovnat dva objekty Json?

  3. Příkaz MySQL Select a IF().

  4. Efektivní vytváření posuvu z více modelů kolejnic?