Dav*_*d G 6 c# ssl mongodb amazon-web-services aws-documentdb-mongoapi
我有一个使用TLS的AWS DocumentDB集群。我想从我的连接到它.net core
的应用程序中C#
使用C# MongoDB Driver
。
AWS提供的连接字符串包括这一部分?ssl_ca_certs=rds-combined-ca-bundle.pem
,这是Amazon提供的证书链。我可以使用此证书通过MongoDB Shell正确连接到数据库。
我的问题是MongoDB C# Driver
不支持.pem
文件。似乎仅支持.pfx
文件。我尝试转换.pem
,但缺少私钥。我可以通过生成.cer
所需.pfx
的.pem
,但不能生成私钥。即使这样,这种解决方案似乎还是粗略的和非正式的。
是否有一种简单的方法通过MongoDB C#驱动程序使用SSL连接到DocumentDB?如果是,我应该使用什么解决方案?
小智 5
->首先,通过将参数 tls 设置为“enabled”,在文档数据库集群上启用 SSL。确保重新启动集群的编写器节点以重新启动整个集群,以便应用参数组更改。默认情况下,启动新的 Doc DB 集群时会启用 TLS。
\n->在您的环境中设置 SSL 证书:
\n1) 从以下链接在源 Windows 计算机上下载 PKCS#7 SSL 证书:
\nhttps://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.p7b
\n2)单击“开始”菜单,单击“运行”并输入 mmc
\n3)在MMC中,文件->添加/删除管理单元。
\n4) 从管理单元列表中选择证书,然后单击添加。
\n5) 受信任的 CA 证书应位于本地计算机存储中,因此选择“计算机帐户”单选按钮,单击“下一步”,然后选择“xe2x80x98本地计算机”。单击“下一步”,然后单击“完成”。
\n6)现在从左侧窗格(在控制台根目录下),您将看到 \xe2\x80\x98Certificates\xe2\x80\x99 选项。单击它。
\n7)将出现一个列表,右键单击\xe2\x80\x98受信任的根证书颁发机构\xe2\x80\x99,然后选择所有任务->导入
\n8)在打开的窗口中,单击下一步,浏览步骤1中下载的证书(.p7b)文件(如果\xe2\x80\x99找不到它,请从文件类型下拉列表中选择所有文件),然后继续单击“下一步”,最后单击“完成”。然后保存配置。
\n-> 然后写了下面的代码:
\n---------------------------------------------------\n\nusing MongoDB.Bson;\nusing MongoDB.Driver;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Security.Cryptography.X509Certificates;\nusing System.Text;\nusing System.Threading.Tasks;\nnamespace FirstDocDB\n{\n public class Program\n {\n public static void Main(string[] args)\n {\n var connectionString = "mongodb://pulkit:password@ClusterID:27017/?ssl=true&sslVerifyCertificate=true&replicaSet=rs0";\n var client = new MongoClient(connectionString);\n var database = client.GetDatabase("test");\n var collection = database.GetCollection("stuff");\n var document = collection.Find(new BsonDocument()).FirstOrDefault();\n Console.WriteLine(document.ToString());\n }\n }\n}\n\n---------------------------------------------------\n
Run Code Online (Sandbox Code Playgroud)\n->构建并运行后,我成功地获得了名为 \xe2\x80\x9cstuff\xe2\x80\x9d 的集合中的文档作为输出: { "_id" : ObjectId("5c5a63b10cf861158c1d241c"), "hello" : “世界” }
\n因此,按照上述步骤后,我成功地使用 .Net 的 Mongo 驱动程序连接到文档数据库。
\n 归档时间: |
|
查看次数: |
1029 次 |
最近记录: |