C# 如何使用带有证书文件的MongoDB.Driver通过TLS连接到服务器?
根据MongoDB文档,应该可以通过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
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进行无验证,或者,对于完全验证,您可以将证书加载到内存中,并验证指纹匹配以及过期日期是否有效