在 Ubuntu 12.04 上升级 OpenSSL

KJ *_*ena 20 12.04 openssl

我想在 Ubuntu 12.04 系统上将 OpenSSL 升级到 1.0.1。我注意到 anapt-get upgrade openssl并没有最终升级 OpenSSL。Ubuntu 是否支持较新的 OpenSSL?

我也试过从源代码编译。编译有效,但我不知道如何用较新的 OpenSSL (1.0.1) 替换内置的 OpenSSL (1.0.0)。从源代码编译使我可以将较新版本与旧版本一起使用 - 我需要用较新版本替换旧版本。我之所以需要这样做,是因为最新的 FreeSWITCH 源代码与 OpenSSL 1.0.0 不兼容,而且 FreeSWITCH 中似乎没有将其指向新 OpenSSL 的路径的 make 配置。(所以它顽固地继续使用旧版本并且无法工作!)

谢谢是提前。任何帮助将不胜感激。

phi*_*hem 12

注意:这个问题和答案早于 OpenSSL 错误 Heartbleed。

首先你需要完全删除旧的安装:(这会破坏大多数系统!小心!大多数人会后悔) apt-get purge openssl

你可能想通过运行来打扫房子:

apt-get autoremove && apt-get autoclean
Run Code Online (Sandbox Code Playgroud)

然后你应该下载并编译你想要的版本(完整列表

wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz
Run Code Online (Sandbox Code Playgroud)

  • 对于在安全更新上下文中阅读本文的所有人:所有本地服务仍然与 Ubuntu 提供的 OpenSSL 相关联。请不要依赖本地 OpenSSL 安装(默认在`/usr/local` 中)!所以**只需按照常规方式更新您的 Ubuntu 系统即可接收安全更新!** (7认同)

ger*_*ijk 12

安装开发包!

在撰写本文时,1.0.1 是 Ubuntu 12.04 的一部分。但是,为了对其进行编译,您还必须安装开发包 ( libssl-dev)!

首先更新包列表

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

然后安装开发包,一键升级库本身:

sudo apt-get install openssl libssl-dev
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到 1.0.1 是 12.04 的一部分:http : //packages.ubuntu.com/precise-updates/openssl

如果您的系统仍然安装 1.0.0,则您设置了一些其他存储库或更改了包管理中的其他内容以导致此错误。在这种情况下,通过运行检查是什么导致它仍然固定在 1.0.0 上

apt-cache policy openssl libssl-dev
Run Code Online (Sandbox Code Playgroud)

  • @DeanPerry **不,从昨天开始就不容易受到 Heartbleed 的影响。** Ubuntu 向后移植了对所提供版本的修复。阅读 [变更日志](https://launchpad.net/ubuntu/+source/openssl/1.0.1c-3ubuntu2.7) 和 Ubuntu 安全公告 [USN-2165-1](http://www.ubuntu. com/usn/usn-2165-1/)。只需更新您的系统就可以了。请不要通过版本号的第一部分散布恐惧,并阅读 Ubuntu 发布的工作原理。 (4认同)

小智 7

尝试下载最新版本libssl,并opensslhttp://archive.ubuntu.com/ubuntu/pool/main/o/openssl/和安装这两个。

警告:这会破坏 OpenSSL 的自动安全更新。