【问题标题】:How to enable SSL/TLS in Mongoid 3 client?如何在 Mongoid 3 客户端中启用 SSL/TLS?
【发布时间】:2014-04-04 21:57:34
【问题描述】:

如何在 Mongoid 3 客户端中启用 SSL/TLS?

我试过了:

options:
  -ssl: true

但我得到“[{"ssl"=>true}]:Array (NoMethodError) 的未定义方法 `each_pair'”:

/home/user1/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/bundler/gems/mongoid-026e32109178/lib/mongoid/config.rb:203:in `options=': undefined method `each_pair' for [{"ssl"=>true}]:Array (NoMethodError)
from /home/jwiley/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/bundler/gems/mongoid-026e32109178/lib/mongoid/config.rb:129:in `load_configuration'
from /home/jwiley/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/bundler/gems/mongoid-026e32109178/lib/mongoid/config.rb:87:in `load!'
from /home/jwiley/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/bundler/gems/mongoid-026e32109178/lib/mongoid.rb:98:in `load!'
from /home/jwiley/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/bundler/gems/mongoid-026e32109178/lib/mongoid/railtie.rb:75:in `block in <class:Railtie>'

这篇文章:

https://groups.google.com/forum/#!topic/mongoid/juexwcPWxOk

...建议您可以通过其配置文件将选项输入 Mongoid 以使其发生。但并不完全清楚需要哪些选项,以及允许的值是什么。

【问题讨论】:

    标签: mongodb mongoid


    【解决方案1】:

    配置中不需要连字符。要启用 SSL,请使用如下配置:

    production:
      sessions:
        default:
          options:
            ssl: true
    

    关于可用选项,您链接的讨论是关于旧代码的。之前可以在配置中设置 SSL 证书:

    https://github.com/mongoid/moped/blob/dc21475820ff148fb42963752db0bfa6a23f5e1e/lib/moped/sockets/ssl.rb#L95-L125

    但是该代码在这次提交中被删除了:

    https://github.com/mongoid/moped/commit/ace43c4d7e4bbe7d32dfcf1f7ac5ee34e47647c9#diff-d808d724705e7cb8b2e11baf137922af

    而 Mongoid 3 自带的 Moped 版本只有主机和端口的选项:

    https://github.com/mongoid/moped/blob/1.5.0-stable/lib/moped/sockets/ssl.rb#L12-L29

    【讨论】:

      猜你喜欢
      • 2020-01-16
      • 2022-10-17
      • 2015-11-22
      • 2018-09-22
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 2017-11-12
      • 2014-04-23
      相关资源
      最近更新 更多