我正在尝试设置mongoid以使用带有客户端证书的ssl连接到mongodb服务器进行身份验证。但是,我找不到mongoid.yml中选项的全面参考。
例如,我发现了这个:How to enable SSL/TLS in Mongoid 3 client? - 它引用了一个ssl:true选项(似乎有用),但是mongoid.yml选项似乎没有记录在我能找到的任何地方。
我可以使用mongo shell使用客户端证书进行连接。如果我省略mongoid.yml中的ssl:true选项,在服务器上我得到“AssertionException处理请求,关闭客户端连接:17189服务器配置为仅允许SSL连接”
如果我使用ssl:true选项,我会收到“ERROR:没有由peer提供的SSL证书;连接被拒绝”,表明ssl:true选项正在运行。
那么,有没有办法使用mongoid.yml为mongoid提供客户端证书/密钥和ca证书?或者是否有另一种方法来连接mongod并提供与mongoid的连接?或者是否根本不可能使用ssl客户端证书进行mongoid身份验证?
答案 0 :(得分:0)
这个问题是几年前发布的,之前Mongo宝石由MongoDB团队接管。 Mongoid 5是一项重大升级,文档也得到了显着改进。
我更新了我的应用程序以使用Mongoid 5;最大的变化是我一直在使用较低级别的驱动程序(Moped)进行某些操作,以提高效率。但是,使用Mongoid 5时,会使用标准的ruby MongoDB驱动程序,所以我不得不重写使用较低级别驱动程序的代码。
然而,这非常值得。 Mongoid 5的改进之一是文档,它清楚地解释了如何在https://docs.mongodb.com/ecosystem/tutorial/mongoid-installation/
为Mongoid驱动程序提供客户端证书/密钥和ca证书。您还需要提供mongod服务器的匹配配置,详见https://docs.mongodb.com/manual/tutorial/configure-ssl/
此外,正如后一页所示,MongoDB发行版现在包括对SSL的支持。