Подключение к DocumentDB с использованием SSL с драйвером MongoDB C#

У меня есть кластер AWS DocumentDB с использованием TLS. Я хочу подключиться к нему из моего .net core приложение в C#, с использованием C# MongoDB Driver,

Строка подключения, предоставляемая AWS, включает эту часть ?ssl_ca_certs=rds-combined-ca-bundle.pem, которая является цепочкой сертификатов, предоставленных Amazon. Я могу подключиться к базе данных, используя этот сертификат с оболочкой MongoDB правильно.

Моя проблема в том, что MongoDB C# Driver не поддерживает .pem файлы. Кажется, только поддержка .pfx файлы. Я пытался преобразовать .pem, но ему не хватает закрытого ключа. Я могу генерировать .cer нужен .pfx от .pem, но не закрытый ключ. Даже тогда это решение кажется поверхностным и неофициальным.

Есть ли простой способ подключения к DocumentDB с использованием SSL с драйвером MongoDB C#? И если да, то какое решение я должен использовать?

0 ответов

Подключение к БД документов с помощью простой консоли.Net Приложение с SSL.

-> Прежде всего, включите SSL в вашем кластере БД документов, установив для параметра tls значение "включено". Обязательно перезагрузите узел записи вашего кластера, чтобы перезагрузить весь кластер, чтобы применить изменения группы параметров. По умолчанию TLS включен, когда вы запускаете новый кластер Doc DB.

-> Настройка SSL-сертификата в вашей среде:

1) Загрузите SSL-сертификат PKCS#7 на вашем компьютере с Windows по ссылке ниже:

https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.p7b

2) Нажмите на меню "Пуск", нажмите "Выполнить" и введите mmc

3) В MMC Файл-> Добавить / Удалить оснастку.

4) Выберите Certificates из списка оснасток и нажмите Add.

5) Сертификаты доверенного ЦС должны находиться в хранилище локального компьютера, поэтому выберите переключатель "Учетная запись компьютера", нажмите "Далее" и затем выберите "Локальный компьютер". Нажмите Далее, а затем Готово.

6) Теперь из левой панели (в разделе Корень консоли вы увидите опцию "Сертификаты". Нажмите на нее.

7) Появится список, щелкните правой кнопкой мыши "Доверенные корневые центры сертификации" и выберите "Все задачи" -> "Импорт".

8) В открывшемся окне нажмите кнопку "Далее", найдите файл сертификата (.p7b), загруженный на шаге 1(если вы не можете его найти, в раскрывающемся списке "Тип файла" выберите "Все файлы"), а затем нажмите "Продолжить". нажмите Next и наконец Finish. Затем сохраните конфигурацию.

-> Затем написал следующий код:

---------------------------------------------------

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"), "hello": "world" }

Таким образом, выполнив вышеуказанные шаги, я успешно смог подключиться к БД документов с помощью драйвера Mongo для.Net.

Этот поток является точной копией Cannot Connect to AWS Database с использованием TLS с проверкой CA сервера

Но я не знаю, как сообщить об этом.

Другие вопросы по тегам