我想在 Ubuntu 12.04 系统上将 OpenSSL 升级到 1.0.1。我注意到最终apt-get upgrade openssl
没有升级 OpenSSL。Ubuntu 是否支持较新的 OpenSSL?
我也尝试过从源代码编译。编译成功,但我找不到如何用较新的版本 (1.0.1) 替换内置的 OpenSSL (1.0.0)。从源代码编译使我能够将较新版本与较旧版本一起使用 - 我需要用较新版本替换较旧版本。我这样做的原因是让 FreeSWITCH 使用较新版本进行编译,因为最新的 FreeSWITCH 源代码与 OpenSSL 1.0.0 不兼容,并且 FreeSWITCH 中似乎没有 make 配置将其指向新 OpenSSL 的路径。(因此它顽固地继续使用较旧版本并且无法工作!)
提前致谢。任何帮助都将不胜感激。
答案1
注意:这个问题和答案早于 OpenSSL 漏洞 Heartbleed。
首先你需要完全删除旧的安装:(这会破坏大多数系统!小心!大多数人都会后悔这样做)apt-get purge openssl
您可能希望通过运行以下命令来清理房间:
apt-get autoremove && apt-get autoclean
然后你应该下载并编译你想要的版本(完整列表)
wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz
答案2
安装开发包!
在撰写本文时,1.0.1 是 Ubuntu 12.04 的一部分。但是,为了对其进行编译,您还必须安装开发包 ( libssl-dev
)!
首先更新软件包列表
sudo apt-get update
然后一次性安装开发包并升级库本身:
sudo apt-get install openssl libssl-dev
您可以在这里看到 1.0.1 是 12.04 的一部分:http://packages.ubuntu.com/precise-updates/openssl
如果您的系统仍然安装 1.0.0,则说明您设置了其他存储库,或者您的包管理中的其他内容发生了更改,从而导致此错误。在这种情况下,请运行以下命令检查导致其仍然固定在 1.0.0 上的原因
apt-cache policy openssl libssl-dev
答案3
libssl
尝试从下载最新版本openssl
的http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/并安装两者。
警告:这将破坏 OpenSSL 的自动安全更新。