问题描述
我有一个托管在Google Cloud Flex应用程序引擎中的Rails应用程序。应用程序使用ssl证书连接到云sql实例(MysqL5.7)。 Rails应用程序成功连接到启用了ssl连接的云sql实例。 database.yml配置如下。
development:
adapter: MysqL2
database: databasename
host: 10.2.224.3
username: root
password: password
sslca: config/server-ca.pem
sslkey: config/client-key.pem
sslcert: config/client-cert.pem
但是当我将blazer gem安装到我的应用程序中时。 https://github.com/ankane/blazer#mysql-1
Blazer只能使用cloud sql的私有IP地址连接允许不安全连接的cloud sql实例。blazer.yml配置如下
data_sources:
my_source:
url: MysqL2://root:password@10.2.224.3:3306/databasename
当我在云sql实例中启用ssl时。 Blazer无法连接到启用了ssl的云sql实例,并收到“ SSL连接错误:无法获取证书”错误消息。 blazer.yml中的配置如下。
data_sources:
my_source:
url: MysqL2://root:password@10.2.224.3:3306/databasename?config/sslca=server-ca.pem&config/sslcert=client-cert.pem&sslkey=config/client-key.pem
如何配置Rails gem blazer的blazer.yml以使其连接到启用ssl的云sql MysqL实例? 或者我可能会问何时将Rails应用程序安装到flex应用程序引擎中。 如何在Flex应用程序引擎中找到我的ssl证书文件的路径。位于rails的config文件夹中。
任何建议将不胜感激。
解决方法
在您的数据库URI中,我看到以下内容:
...?config/sslca=server-ca.pem&...
我认为应该是:
sslca=config/server-ca.pem