小编Sut*_*Hoo的帖子

MongoDb c# 驱动程序 - UseSsl = true。尝试读取超过流末尾的内容

我已mongodb-win32-x86_64-2008plus-ssl-3.0.0-signed 在 Azure 2012 R2 Windows 服务器 VM 上安装了 MongoDb。

我想将 MongoDb 配置为使用 SSL。我使用开放 SSL 生成了证书(.crt、pem、pfx 文件)。相同的文件(在服务器上生成)已复制到远程 PC 以在客户端-服务器连接中使用,

我可以成功连接到 mongod 实例,并通过 mongo shell 从远程 PC 查询服务器上运行的数据库。客户端安装了相同版本的MongoDb。

但是,我无法通过同一台远程 PC 上的 C# 代码进行连接。该代码使用通过 NuGet [v1.10.0 = 最新版本] 拉入项目的官方 MongoDb c# 驱动程序。

错误信息。无法连接到“:27017”。试图读取超过流末尾的内容'.

如果虚拟机上的 mongod 实例使用 --sslMode PreferredSSL选项而不是requireSSL启动(已将 C# 驱动程序的“UseSsl”属性设置为 false),我可以使用 C# 驱动程序成功连接。我尝试使用 X509Certificate 设置 MongoClient SslSettings 以及使用 OpenSSL (pfx; crt) 生成的每个文件,并收到已经提到的错误。如果我尝试使用生成的 .pem 文件,错误是“找不到请求的对象”。该文件肯定位于代码将要查找的位置。我相信我应该使用 .pfx 文件。

这些文件在记事本中打开时看起来是正确的(就其“开始”和“结束”语句而言)。

在VM上启动Mongod的命令:

mongod --sslMode requireSSL --sslPEMKeyFile mongodb.pem --sslCAFile mongodb-cert.crt --dbpath …

c# ssl azure mongodb

7
推荐指数
1
解决办法
3959
查看次数

标签 统计

azure ×1

c# ×1

mongodb ×1

ssl ×1