根据MongoDB文档,应该可以通过TLS进行连接,您可以在其中通过tlsCAFile
参数指定pem证书。
但是,我无法以成功的方式使用客户端。
[无法将证书安装到本地存储中]
客户端提供的所有内容都是错误A timeout occured after 30000ms...
+The remote certificate is invalid according to the validation procedure
不管我做了什么。我已通过向服务器明确提供证书来验证MongoDB管理工具可访问服务器。
最终偶然发现了一个解决方案:
var clientSettings = MongoClientSettings.FromUrl(new MongoUrl(mongoUrl));
clientSettings.UseTls = true;
clientSettings.SslSettings = new SslSettings
{
EnabledSslProtocols = SslProtocols.Tls11,
ServerCertificateValidationCallback = (sender, certificate, chain, errors) =>
certificate.Subject.Contains("O=myOU,")
};
这是一个较宽松的验证,但足以满足我的需求。您可以不进行验证,=> true
也可以进行完全验证,可以将证书加载到内存中,并验证指纹与到期日期是否匹配。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句