无法使用 OpenSSL 1.1.1 构建 activemq CMS 3.9.5
Posted
技术标签:
【中文标题】无法使用 OpenSSL 1.1.1 构建 activemq CMS 3.9.5【英文标题】:Failed to build activemq CMS 3.9.5 with OpenSSL 1.1.1 【发布时间】:2019-03-13 13:36:33 【问题描述】:ActiveMQ CPP 库版本 3.9.5 状态的 Readme.txt
1.3 OpenSSL
如果您希望使用 SSL 传输,那么您需要拥有 OpenSSL 及其包含安装在您的系统上。我们建议 您使用 1.0.0 或更高版本以获得最佳性能和安全性,但是 从 0.9.8 开始的版本也可以工作。
我正在尝试使用 Visual Studio 项目(包含在 activemq-cpp 3.9.5 发行版中)使用 OpenSSL 1.1.1 构建 activemq cms 3.9.5,并且看起来 CRYPTO_malloc_init() 已从 OpenSSL 1.1.1 中删除,这样我在 OpenSSLContextSpi.cpp 中遇到编译错误
#ifdef HAVE_OPENSSL
// General library initialization.
#ifdef WIN32
CRYPTO_malloc_init();
#endif
SSL_load_error_strings();
SSL_library_init();
OpenSSL_add_all_algorithms();
... 而 OpenSSL 1.1.1 定义了另一个宏
#define OPENSSL_malloc_init() \
CRYPTO_set_mem_functions(CRYPTO_malloc, CRYPTO_realloc, CRYPTO_free)
我发现了以下内容 https://***.com/questions/46005827/does-activemq-cpp-3-9-4-support-openssl-1-1-0/55131365#55131365 但我不清楚它是否已得到解决并且我在正确构建它时遇到了问题,或者 OpenSSL 1.1.1 实际上不受版本 3.9.5 的支持? 任何帮助或澄清将不胜感激
【问题讨论】:
【参考方案1】:该版本的 CMS 客户端不支持 OpenSSL 1.1.1,因此很可能不允许客户端构建,如果它确实构建,它可能会失败。 CMS 客户端尚未积极开发,因此我会查看备用客户端库,例如 Apache Qpid 项目的 AMQP 客户端。
【讨论】:
感谢蒂姆的澄清!这是非常不幸的,根据OpenSSL 1.0.2 系列的 LTS 将继续支持到 2019 年 12 月 31 日,并鼓励 1.0.2 和 1.1.0 的所有用户尽快升级到 1.1.1 .由于不支持它,许多依赖 CMS 客户端的产品将被“搁置一旁”...... Qpid 客户端将支持更多最新的 OpenSSL 库,并且代理支持 AMQP 是否有从 CMS 客户端 API 迁移到 Qpid 客户端的指南?从 Openwire 切换到 AMQP 是否会影响性能或配置?以上是关于无法使用 OpenSSL 1.1.1 构建 activemq CMS 3.9.5的主要内容,如果未能解决你的问题,请参考以下文章