Я закончил следующий урок (https://medium.com/@rajanmaharjan/secure-your-mongodb-connections-ssl-tls-92e2addb3c89), чтобы настроить самозаверяющие SSL-сертификаты для защиты связи между устройством и сервером, на котором размещена база данных mongoDB.
Я могу получить доступ к базе данных изсервер и с устройства с помощью следующей команды:
mongo --ssl --sslCAFile /path/to/CA.pem --sslPEMKeyFile /path/to/mongodb.pem --host IP:port
Ошибка
Когда я пытаюсь подключиться к базе данных с помощью программы C ++, я получаю ошибку seg:
Segmentation fault (core dumped)
Выход из GDB:
Program received signal SIGSEGV, Segmentation fault.
0x0000007fb7f6d6a8 in mongocxx::v_noabi::client::client(mongocxx::v_noabi::uri const&, mongocxx::v_noabi::options::client const&) () from /usr/local/lib/libmongocxx.so._noabi
C ++ код
Я устанавливаю соединение с:
mongocxx::instance instance{};
mongocxx::options::ssl ssl_opts;
ssl_opts.pem_file("/path/to/mongodb.pem");
// ssl_opts.allow_invalid_certificates(false); // I have tried this
mongocxx::options::client client_opts;
client_opts.ssl_opts(ssl_opts);
auto client = mongocxx::client{mongocxx::uri{"mongodb://user:pwd@IP:port/?authMechanism=MONGODB-X509&ssl=true"}, client_opts};
И скомпилируйте следующую команду:
c++ --std=c++11 main.cpp $(pkg-config --cflags --libs libmongocxx) -Wl,-rpath,/usr/local/lib
Мне не удалось исправить эту ошибку или найти решение в Интернете, любая помощь будет оченьприветствуется.
Дополнительная информация
Версии:
Mongo c - 1.10.1
Mongo cxx - 3.3.0
Backtrace:
(gdb) thread apply all bt
Thread 1 (Thread 0x7fb7ff4000 (LWP 17800)):
#0 0x0000007fb7f6d6a8 in
mongocxx::v_noabi::client::client(mongocxx::v_noabi::uri const&,
mongocxx::v_noabi::options::client const&) () from
/usr/local/lib/libmongocxx.so._noabi
#1 0x00000000004027d0 in main ()