Не удалось понять, как установить libmongocrypt

node.js #mongodb #mongodb-csfle

#node.js #mongodb #mongodb-csfle

Вопрос:

Я пытаюсь настроить соединение mongo в NODE.js с autoEncrypt опцией, и он, конечно, пытается соединиться с драйвером в порту 27020 . У меня не libmongocrypt запущена служба, поэтому соединение выдает следующую ошибку.

ECONNREFUSED 127.0.0.1:27020

Я пытаюсь реализовать ручное шифрование с bypassAutoEncryption помощью флага.

Я знаю, что мы должны использовать эту библиотеку, но, похоже, это библиотека C, и я все еще не знаю, как я могу настроить libmongocrypt в моей локальной среде.

ОС: Windows 10 MONGO ВЕРСИЯ: 5.0

Любая помощь будет оценена! Спасибо

Комментарии:

1. Некоторые из этих функций доступны только для enterprise mongodb, а не для версии сообщества.

2. Обновил мой вопрос, извините. Я пытаюсь реализовать ручное шифрование, которое также должно быть доступно на серверах, не относящихся к предприятию. Ссылка

Ответ №1:

Я не знаком с Node самим собой, но это общие сведения об этом рабочем процессе (записываю его как ответ, поскольку он довольно большой):

  1. libmongocrypt это библиотека C, которая используется драйвером, обычно она встроена в драйвер (если только Node по какой-либо причине не поддерживает ее).
  2. ECONNREFUSED 127.0.0.1:27020 эта ошибка говорит о том, что процесс, необходимый для вызываемого шифрования mongocryptd , не запущен, это не то же самое, что libmongocrypt библиотека (это совершенно разные вещи), вы можете запустить этот процесс с помощью:
    • Просто ручной запуск. Этот файл помещен в SERVER_PATHbinmongocryptd.exe . Используйте его только для быстрой проверки.
    • Заполнив autoEncryption.extraOptions.mongocryptdSpawnPath путем к mongocryptd.exe , вы можете найти некоторые подробности здесь

стоит отметить, что автоматическое шифрование (наряду с mongocryptd) доступно только на enterprise server.

Комментарии:

1. Спасибо @dododo за ответ, я был полностью введен в заблуждение libmongocrypt , но, с другой стороны, ручное шифрование Mongo доступно и для не корпоративных серверов (^ 4.2). (Также обновлен мой вопрос) Ссылка

2. mongocryptd не участвует в явном шифровании (явное означает, что вы вызываете такие методы, как Encrypt / Decrypt), тогда порт 27020 может быть просто узлом вашего кластера rs / sharded, который по какой-то причине недоступен

3. настройки bypassAutoEncryption означают, что вы все еще пытаетесь настроить автоматическое шифрование, но пропускаете часть шифрования, вы должны указать, как вы создаете MongoClient

4. Я прошу прощения, поскольку я просто пытался это сделать в node.js вспомогательный репозиторий . Я полностью понимаю, что предоставленной информации недостаточно, и принял ваш ответ, большое вам спасибо.

5. 1. localhost:27020 является URL-адресом для mongocryptd по умолчанию. Если вы не хотите (по какой-то причине) его изменять, вам не следует ничего настраивать где бы то ни было. Если вам нужно настроить, он должен быть установлен в extraOptions в настройках шифрования. 2. Если вы работаете с atlas, вам также не следует ничего настраивать. Вся эта работа будет выполнена самим atlas за кулисами. 3. Глядя на предоставленную ссылку, я не вижу, где bypassAutoEncryption=true там установлено.