C# 如何使用带有证书文件的MongoDB.Driver通过TLS连接到服务器?

C# 如何使用带有证书文件的MongoDB.Driver通过TLS连接到服务器?,c#,mongodb,.net-core,mongodb.driver,C#,Mongodb,.net Core,Mongodb.driver,根据MongoDB文档,应该可以通过TLS进行连接,通过tlsCAFile参数指定pem证书 但是,我无法以成功的方式使用客户端 [将证书安装到本地存储不是一个选项] 客户端提供的所有错误都是一般的30000ms后发生的超时…+根据验证过程,无论我做了什么,远程证书都无效。我已经通过向MongoDB管理工具明确提供证书来验证服务器是否可以访问。最终找到了解决方案: var clientSettings = MongoClientSettings.FromUrl(new MongoUrl(mong

根据MongoDB文档,应该可以通过TLS进行连接,通过
tlsCAFile
参数指定pem证书

但是,我无法以成功的方式使用客户端

[将证书安装到本地存储不是一个选项]


客户端提供的所有错误都是一般的
30000ms后发生的超时…
+
根据验证过程,无论我做了什么,远程证书都无效。我已经通过向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进行无验证,或者,对于完全验证,您可以将证书加载到内存中,并验证指纹匹配以及过期日期是否有效