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
самим собой, но это общие сведения об этом рабочем процессе (записываю его как ответ, поскольку он довольно большой):
libmongocrypt
это библиотека C, которая используется драйвером, обычно она встроена в драйвер (если только Node по какой-либо причине не поддерживает ее).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
означают, что вы все еще пытаетесь настроить автоматическое шифрование, но пропускаете часть шифрования, вы должны указать, как вы создаете MongoClient4. Я прошу прощения, поскольку я просто пытался это сделать в node.js вспомогательный репозиторий . Я полностью понимаю, что предоставленной информации недостаточно, и принял ваш ответ, большое вам спасибо.
5. 1.
localhost:27020
является URL-адресом для mongocryptd по умолчанию. Если вы не хотите (по какой-то причине) его изменять, вам не следует ничего настраивать где бы то ни было. Если вам нужно настроить, он должен быть установлен в extraOptions в настройках шифрования. 2. Если вы работаете с atlas, вам также не следует ничего настраивать. Вся эта работа будет выполнена самим atlas за кулисами. 3. Глядя на предоставленную ссылку, я не вижу, гдеbypassAutoEncryption=true
там установлено.