【发布时间】:2017-09-05 05:19:43
【问题描述】:
我已按照文档https://docs.mongodb.com/manual/core/security-x.509/ 中的说明配置了 MongoDB 服务器 我使用 mongo shell 连接它工作正常。
接下来我尝试从 c# 驱动程序连接到同一服务器,但引发了超时异常。 下面是我的代码
var cert = new X509Certificate2(@"C:\Program Files\MongoDB\Server\3.2\ssl\client.pfx", "secretkey");
var sslcrd = MongoCredential.CreateMongoX509Credential("CN=Client1,O=School,ST=Some-State,C=IN");
settings.SslSettings = new SslSettings() ;
settings.UseSsl = true;
settings.SslSettings.ClientCertificates = new List<X509Certificate>()
{
cert
};
settings.SslSettings.EnabledSslProtocols = SslProtocols.Default;
settings.SslSettings.ClientCertificateSelectionCallback =
(sender, host, certificates, certificate, issuers) => settings.SslSettings.ClientCertificates.ToList()[0];
settings.SslSettings.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
settings.SslSettings.CheckCertificateRevocation = false;
settings.VerifySslCertificate = false;
settings.Credentials = new[] { sslcrd };
MongoClient client = new MongoClient(settings);
var db = client.ListDatabases().ToList();
我浏览了 MongoDB 服务器日志,我可以看到以下错误
2017-04-10T11:18:21.559+0530 I NETWORK [initandlisten] 连接 接受自 127.0.0.1:53901 #64(现在打开 1 个连接)2017-04-10T11:18:21.559+0530 E NETWORK [conn64] 没有 SSL 证书 由同行提供;连接被拒绝 2017-04-10T11:18:21.560+0530 I NETWORK [conn64] 结束连接 127.0.0.1:53901(现在 0 个连接 打开)
我正在使用 c# MongoDB.Driver 版本 2.3.0 并且 MongoDB 包是 3.2 版本的。
如果您对上述问题有解决方案,请回复。
【问题讨论】:
标签: mongodb ssl mongodb-.net-driver x509certificate2