gpt4 book ai didi

linux - 如何在 openssl 中启用 EVP 功能?

转载 作者:太空狗 更新时间:2023-10-29 11:37:46 30 4
gpt4 key购买 nike

我正在尝试使用 heartbleed 补丁 ( 1.0.1g ) 将我的网络服务器更新到最新的 openssl。我从 openssl.org 抓取了 tarball。表示通常的./configure;制作;进行安装。不得不说 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”并且配置脚本很满意,但是构建后符号仍然未定义。我将构建输出通过管道传输到一个文件中,并且正在编译 crypto/idea 文件。

EVP_* 中的每个符号都未定义...它们在 libssl.a 中也未定义...所以也许我找错了 IDEA 树?

所以我的问题变成了 - 如何启用这些 EVP_* 符号?

最佳答案

我解决了。问题很简单。这些符号确实在 libssl.so 中未定义(或 .a )。它们实际上是在 libcrypto.so 中定义的.我没有得到新的 libcrypto.so因为....

...新的 openssl tarball 默认将其输出安装在 /usr/local/ssl 中.这是可配置的,但它真的想在 /something/something/ssl 中安装所有 ssl 东西(包括库) .所以你有 /something/something/ssl/lib , /something/something/ssl/bin

所以当我说 make install , 它创造了 /usr/local/ssl里面有所有好东西。我在 /usr/lib64 from openssl.so.1.0.0 -> /usr/local/etc/ssl/lib/openssl.so.1.0.0. 中建立了符号链接(symbolic link)但是我没有意识到我需要为 libcrypto.so 做同样的事情。 , 因此仍然有旧的东西。

所以我使用的是新的 libssl.so , 和一个旧的 libcrypto.so .糟糕的魔力。

关于linux - 如何在 openssl 中启用 EVP 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23016514/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com