- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
AWS 文档指出,要连接到我的 DocumentDB 集群,我需要使用以 ?ssl_ca_certs=rds-combined-ca-bundle.pem&replicaSet=rs0
结尾的查询字符串。 It is a root certificate chain我的客户应该验证。我不需要 Client Certificate .
使用 MongoDB C# 驱动程序和此特定查询,以及同一目录中的 .pem
文件,我无法建立连接。如果我使用相同的 .pem
文件和来自 Mongo Shell 的查询字符串,我可以正确连接到我的数据库。它仅不适用于我的 .net 核心应用程序,该应用程序也在 AWS 上运行。
通过从集群中删除 TLS 并从查询中删除 ssl_ca_certs
选项,我可以正确连接到我的集群。
我想我可以使用 openssl
将我的 .pem
文件转换为 .pfx
,但我必须提供 。 pfx
密码和 MongoDB documentation states that
It is imperative that when loading a certificate with a password, the PrivateKey property not be null. If the property is null, it means that your certificate does not contain the private key and will not be passed to the server.
我如何使用 the .pem
file provided by Amazon AWS使用 C# MongoDB 驱动程序连接到我的数据库?
最佳答案
->首先,通过将参数 tls 设置为“已启用”,在您的文档数据库集群上启用 SSL。确保重启集群的写入器节点以重启整个集群,以便应用参数组更改。默认情况下,TLS 在您启动新的 Doc DB 集群时启用。
->在您的环境中设置 SSL 证书:
1) 从以下链接在源 Windows 计算机上下载 PKCS#7 SSL 证书:
https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.p7b
2)点击开始菜单,点击运行并输入mmc
3)在MMC中,文件->添加/删除管理单元。
4) 从管理单元列表中选择证书并单击添加。
5) 受信任的 CA 证书应该在本地计算机存储中,因此选择“计算机帐户”单选按钮,单击下一步,然后选择“本地计算机”。单击下一步,然后单击完成。
6) 现在从左侧面板(在 Console Root 下,您将看到“证书”选项。单击它。
7) 将出现一个列表,右键单击“受信任的根证书颁发机构”,然后选择所有任务->导入
8) 在打开的窗口中,单击下一步,浏览在步骤 1 中下载的证书 (.p7b) 文件(如果找不到,请从文件类型下拉列表中选择所有文件),然后然后继续单击下一步,最后单击完成。然后保存配置。
->然后写了下面的代码:
---------------------------------------------------
using MongoDB.Bson;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace FirstDocDB
{
public class Program
{
public static void Main(string[] args)
{
var connectionString = "mongodb://pulkit:password@ClusterID:27017/?ssl=true&sslVerifyCertificate=true&replicaSet=rs0";
var client = new MongoClient(connectionString);
var database = client.GetDatabase("test");
var collection = database.GetCollection("stuff");
var document = collection.Find(new BsonDocument()).FirstOrDefault();
Console.WriteLine(document.ToString());
}
}
}
---------------------------------------------------
->构建并运行后,我成功地获得了名为“stuff”的集合中的文档作为输出:{ “_id”:ObjectId(“5c5a63b10cf861158c1d241c”),“你好”:“世界”
因此,在执行上述步骤后,我可以使用 .Net 的 Mongo 驱动程序成功连接到 Document DB。
关于mongodb - 无法使用带有服务器 CA 验证的 TLS 连接到 AWS 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54836737/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!