【发布时间】:2018-08-17 16:19:18
【问题描述】:
我有一个非常简单的 MongoDB 应用程序,它连接到 MongoDB 数据库并且工作正常。
然后我将连接调用添加到一个大型、复杂的遗留应用程序中,当我调用时:
mongocxx::instance(即第一个 MongoDB 库调用)
我收到以下回复:
2018/08/16 10:20:59.0499: [16856]: ERROR: mongoc: Failed to initialize OpenSSL.
似乎在 MongoDB C 库中对 SSL_CTX_new 的低级调用返回了一个空指针。
我不太清楚为什么会这样。我什至已经针对大型遗留应用程序使用的所有库重新编译和链接我的简单 MongoDB 应用程序(对 ldd 的调用现在相同),但简单的应用程序仍然可以正常工作。
这是使用以下 MongoDB 驱动程序:
mongo-c-driver-1.11.0
mongo-cxx-driver-r3.3.0
使用 OpenSSL 1.1.0 在 RHEL7 box (7.4) 上编译和运行。
有什么建议吗?
【问题讨论】:
-
我做了一些额外的挖掘(更改了底层 MongoDB 代码以打印出实际错误),我得到了这个:
SSL routines:SSL_CTX_new:library has no ciphers:ssl/ssl_lib.c:2519: