我正在尝试使用 heartbleed 补丁 ( 1.0.1g ) 将我的 Web 服务器更新到最新的 openssl。我从 openssl.org 获取了压缩包。照例说./configure; make; make install
。不得不说config shared
让它制作 .so 文件(默认情况下它只生成 .a )。更新了 /usr/lib64 中的链接以指向新的 .so -
现在 httpd 无法运行并出现以下抱怨:
/usr/sbin/httpd: symbol lookup error: /usr/lib64/libssl.so.1: undefined symbol: EVP_idea_cbc
nm -g | grep idea
说:U EVP_idea_cbc
...所以它知道符号,但符号未定义。
Openssl 文档说他们默认禁用 IDEA,因为专利(显然在 2012 年到期)。他们详细介绍了如何禁用它,但没有介绍如何启用它。此外,他们说默认情况下它是禁用的。
Apache httpd 需要该符号,没有它就无法启动。
我试过说“config shared enable-idea”并且配置脚本很高兴,但构建后符号仍然未定义。我将构建输出通过管道传输到一个文件中,并且正在编译加密/想法文件。
开头的每个符号EVP_*
都是未定义的...它们在libssl.a
...中也是未定义的所以也许我在吠叫错误的IDEA树?
所以我的问题变成了 - 我如何启用这些EVP_*
符号?