如何使用 blazer ruby gem 连接到支持 ssl 的云 sql 实例

How to connect to ssl enabled cloud sql instance with blazer ruby gem

我有一个 rails 应用程序托管在 google cloud flex app engine 中。应用程序使用 ssl 证书连接到云 sql instance(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 只能使用云 sql 的私有 IP 地址连接云 sql 实例,这允许不安全 connection.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 app engine 中找到我的 ssl 证书文件的路径。它位于 rails 的配置文件夹中。

如有任何建议,我们将不胜感激。

在您的数据库 URI 中,我看到以下内容:

...?config/sslca=server-ca.pem&...

我认为应该是:

sslca=config/server-ca.pem