如何使用 SSL 与 Amazon RDS 上的 MariaDB 建立 ruby Datamapper 连接?
这是我做的:
非 SSL 连接在测试时有效:
uri = 'mysql://user:pass@host:port/db_name'
connection = DataObjects::Connection.new(uri)
=> #<DataObjects::Mysql::Connection:0x000056179a3a5921
connection.secure?
=> false
根据MySQL datamapper wiki ,ssl 连接需要以下选项::ssl_ca、:client_key 和 :client_cert
。
这将导致以下代码:
uri = 'mysql://user:pass@host:port/db_name?'
ssl_opts = 'ssl[ssl_ca]=file&ssl[client_key]=file&ssl[client_cert]=file'
connection = DataObjects::Connection.new(uri + ssl_opts)
connection.secure?
=> false
然而,唯一获得的文件是 RDS combind CA bundle , 引用自 RDS docs
我根本没有 client_cert。
在 cli 上使用 SSL 连接 mysql 客户端:
mysql --ssl -h host -u user -p pass db_name
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 1638
Server version: 10.1.26-MariaDB MariaDB Server
最佳答案
在文档中
https://github.com/datamapper/do/wiki/MySQL
它还说
经测试,连接到 RDS 只需要 ca_cert。
因此尝试仅添加 ca_cert 路径并进行测试
关于Ruby Datamapper 通过 SSL 连接到 Amazon RDS 上的 MariaDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47672977/