2014-11-06 54 views
0

我想通过ssl启用模式连接postgresql db服务器。在Ruby中,我使用dbi模块来连接数据库。但是,dbi似乎并不支持ssl通信。在Ruby DBI模块中与postgresql进行ssl通信

有没有其他办法来实现这一目标? (我宁愿只使用dbi模块)。

某处我读了pg模块支持ssl通信。但是,如果我使用pg,我有更多的依赖关系。

+0

_dbi似乎不被支持SSL communication_:你能详细谈谈那一点?这样的模块不应该关心流量是否被加密,这是由服务器上的配置以及客户端上的连接字符串或env变量驱动的。 – 2014-11-06 12:58:04

+0

我读了dbi文档,我没有找到任何这样的配置来启用'sslmode = require'(或)来传入连接字符串。服务器使用sslmode正确配置。它适用于perl,php客户端。如果你已经更新了关于启用ssl的dbi文件,请分享。 – Pavunkumar 2014-11-11 05:45:34

+0

驱动程序特定的选项(由于dbi不依赖于驱动程序,因此不会在dbi中记录)接受'sslmode',或者可以设置'PGSSLMODE'环境变量。另外'prefer'是默认的sslmode,在没有任何客户端设置的情况下,如果没有dbi或dbd :: pg,即使知道它,ssl也将被使用。 – 2014-11-11 15:26:17

回答

0

为什么使用DBI?如果您可以尝试使用pg宝石,因为它会支持SSL,并且由于它是在Rails应用程序中使用的默认值,所以如果您发现任何问题,它会给您一个额外的信心。

而且使用SSL确保你的Ruby编译SSL支持:

ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'