我的服务器上安装了 CentOS 版本 6.2 (最终版)。我已从 openssl 源文件“openssl-1.0.1g.tar.gz”更新了 openssl。但当我通过 openssl version 命令检查时,它显示“OpenSSL 1.0.1g 2014 年 4 月 7 日“这是正确且更新的。但是当我使用“rpm -q openssl”命令检查时,它显示“openssl-1.0.1e-16.el6_5.4.x86_64“此输出应为 5.7。此外,当我使用 rpm -q --changelog openssl 时,它会给出以下输出
* 2014 年 1 月 7 日星期二 Tomáš Mráz 1.0.1e-16.4 - 修复 CVE-2013-4353 - 无效 TLS 握手崩溃
- 2014 年 1 月 6 日星期一 Tomáš Mráz 1.0.1e-16.3
修复 CVE-2013-6450 - 可能对 DTLS1 进行 MiTM 攻击
2013 年 12 月 20 日星期五 Tomáš Mráz 1.0.1e-16.2
- 修复 CVE-2013-6449 - SSL 结构中的版本不正确时崩溃
它应该显示如下输出
* 2014 年 4 月 7 日星期一 Tomáš Mráz 1.0.1e-16.7 - 修复 CVE-2014-0160 - TLS 心跳扩展中的信息泄露
即2014年4月7日更新的版本。
我该如何解决这个问题?请帮忙。
我已成功更新至 1.0.1g。openssl 版本显示“OpenSSL 1.0.1g 2014 年 4 月 7 日“. rpm -q openssl 显示”openssl-1.0.1e-16.el6_5.7.x86_64“ rpm -q --changelog openssl 给出的输出如下 * 2014 年 4 月 7 日星期一 Tomáš Mráz 1.0.1e-16.7 - 修复 CVE-2014-0160 - TLS 心跳扩展中的信息泄露 * 2014 年 1 月 7 日星期二 Tomáš Mráz 1.0.1e-16.4 - 修复 CVE-2013-4353 - 无效的 TLS 握手崩溃 * 2014 年 1 月 6 日星期一 Tomáš Mráz 1.0.1e-16.3 - 修复 CVE-2013-6450 - 可能对 DTLS1 进行 MiTM 攻击
但当我检查我的服务器状态页面时,它显示 SSL 版本为“Apache/2.4.9(Unix)OpenSSL/1.0.1e-fips“。我已经停止并启动了我的 Apache 服务器。我还更改了我的证书和密钥。我还需要什么吗?请帮忙
答案1
原因是openssl
您的系统上当前安装了两个软件包:
- 第一个由您通过以下方式手动安装
openssl-1.0.1g.tar.gz
- 第二种是通过发行版包管理器安装的。您使用的 rpm 命令仅适用于通过发行版包管理器安装的包或通过 rpm 安装的包,而不是手动安装的包。
答案2
再说一下其他评论,即使您已经安装了两个软件包(一个通过 rpm 安装,一个通过源代码安装),您仍然可能只运行 rpm 版本。安装源代码而不启动新版本意味着原始版本正在运行。接下来,如果您尝试运行源代码版本,您可能会遇到端口冲突(“旧”版本已经拥有端口,因此“新”版本无法获取它)。
我发现有两种可能的解决方案:
选项 1. 使用适当的包管理器(rpm 或 YUM)来卸载旧版本的 OpenSSL,然后尝试启动新服务。您可能需要将 init 脚本从默认安装位置复制到相应的运行级别目录中。
选项 2. 从源代码(又名“tarball”)删除您安装的版本,然后找到更新的 rpm、下载并安装它,或者安装和配置 YUM(不是脑外科手术),然后使用 YUM 安装最新的可用包。
过去,在与客户合作的类似情况下,我卸载了 tarball 并使用 YUM 安装最新包。YUM 非常有用,尤其是在处理依赖项时。
旁注:仅安装来自受信任存储库的软件包。