ruby – ssl_verify_mode bundler geminabox

我正在尝试建立一个私有geminabox服务器来保存我的项目正在开发的一些宝石.我有服务器设置,乘客nginx运行geminabox作为机架应用程序.我能够在不使用SSL的情况下捆绑安装指向服务器.

由于裸HTTP流量从未理想,我也想添加SSL.为了获得一个概念验证工作,我添加了一个SSL证书并验证我仍然可以看到我安装了gem的geminabox前端.

当我回到我的ruby项目时,我运行一个bundle install并得到:

无法验证https://********.com/的SSL证书.

您可能遇到了中间人攻击,但很可能您的系统没有验证所需的CA证书.有关OpenSSL证书的信息,请参阅bit.ly/ruby-ssl.要在不使用SSL的情况下进行连接,请编辑Gemfile源并将“https”更改为“http”.

在错误消息给我的链接之后,我决定首先添加〜/ .gemrc以及内容:

:ssl_verify_mode:0

(不理想,而不是永久的解决方案).现在我得到:

从https://***.com/获取源索引

解决依赖关系……

无法验证SSL证书
HTTPS://***.com/quick/Marshal.4.8/sqlite3-1.3.10-x86-mswin32-60.gemspec.rz.
您有可能遇到中间人攻击,但很可能您的系统没有CA.
验证所需的证书.有关OpenSSL证书的信息,请参阅bit.ly/ruby-ssl.没有连接
使用SSL,编辑Gemfile源并将“https”更改为“http”.

我的问题是,如何在捆绑器中正确设置SSL验证?我应该使用另一种设置吗?谢谢你提供的所有帮助…

我的系统:

Ubuntu 14.04

Ruby 2.1.2

Bundler版本1.8.4

最佳答案 而不是回答如何禁用验证(我不确定如何或是否可能,我不推荐它)这里是如何指定自定义CA证书文件的路径,这是一个更安全的解决方案:

bundle config --global ssl_ca_cert /path/to/file.pem

来源http://bundler.io/man/bundle-config.1.html#LIST-OF-AVAILABLE-KEYS

点赞