Puede especificar algunos parámetros mysql2 SSL
a través de la DATABASE_URL
configuración Se agregarán como elementos al database.yml
dinámico. que se genera durante el proceso de compilación de Heroku, por lo que se pasarán cuando se creen las conexiones mysql2.
El único parámetro que necesita pasar para que esto funcione es sslca
(no debe confundirse con sslcapath
).
(Editar) Amazon estará girando este certificado en marzo de 2015. Necesitará el archivo nuevo de esa página en lugar de este.
curl https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem > ./config/amazon-rds-ca-cert.pem
DATABASE_URL
para pasar sslca
:
heroku config:add DATABASE_URL="mysql2://username:[email protected]/dbname?sslca=config/amazon-rds-ca-cert.pem -a <app_id>
La ruta relativa allí es importante; consulte a continuación.
¡Eso es todo! Ahora que tiene SSL funcionando, es posible que desee hacer cumplir que todas las conexiones con ese usuario solo permitan SSL:
GRANT USAGE ON dbname.* TO 'username'@'%' REQUIRE SSL;
Resolución de problemas
Asegúrese de pasar una ruta relativa a sslca
! De lo contrario, rake assets:precompile
puede romperse con un error de SSL. Si recibe un error como:
SSL connection error: ASN: bad other signature confirmation
o incluso simplemente:
SSL connection error
...entonces es probable que haya algún problema con la forma en que se hace referencia al archivo de certificado de CA.