如何从源码升级CentOS 6.5 / Linux / Unix中的OpenSSL?

如何在CentOS 6.5中升级OpenSSL?

我已经使用这些命令,但没有发生:

cd /usr/src wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz tar -zxf openssl-1.0.1g.tar.gz cd openssl-1.0.1g ./config make make test make install cd /usr/src rm -rf openssl-1.0.1g.tar.gz rm -rf openssl-1.0.1g 

使用这个命令后,我得到旧版本

 openssl version 
 ./config --prefix=/usr --openssldir=/usr/local/openssl shared 

试试这个configuration行,而不是覆盖默认值。 当你离开前缀时,默认安装在前缀/ usr / local / ssl前面。 你可能有“/ usr / local / ssl / bin / openssl”而不是覆盖/ usr / bin / openssl。 您也可以使用/ usr / local作为前缀,但是如果path尚不在path中,则需要相应地调整path。 这是INSTALL文档:

  $ ./config $ make $ make test $ make install [If any of these steps fails, see section Installation in Detail below.] This will build and install OpenSSL in the default location, which is (for historical reasons) /usr/local/ssl. If you want to install it anywhere else, run config like this: $ ./config --prefix=/usr/local --openssldir=/usr/local/openssl 

https://github.com/openssl/openssl/blob/master/INSTALL http://heartbleed.com/

红帽企业版Linux修复了这个heartbleed漏洞已经被backported到1.0.1e-16 ,这就是CentOS发布的官方修复程序。

用上游的最新版本(如1.0.1g)代替OpenSSL会带来风险,引入function变化,这可能会以不可预知的方式破坏与应用程序/客户端的兼容性,导致系统与RHEL分离,并使您处于危险境地将来的更新包。 通过使用一个简单的make configreplaceopenssl && make && make install意味着你也失去了使用rpm来pipe理这个包并对其进行查询的能力(例如validation所有的文件存在,没有被修改或者权限被改变而不更新RPM数据库)。

我还要警告说,encryption软件可能对编译器选项等看起来很小的事情非常敏感,如果你不知道自己在做什么,就可能在本地安装中引入漏洞。

要手动编译OpenSSL,请执行如下操作:

 $ cd /usr/src $ wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz -O openssl-1.0.1g.tar.gz $ tar -zxf openssl-1.0.1g.tar.gz $ cd openssl-1.0.1g $ ./config $ make $ make test $ make install $ openssl version 

如果显示旧版本,请执行以下步骤。

 $ mv /usr/bin/openssl /root/ $ ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl openssl version OpenSSL 1.0.1g 7 Apr 2014 

http://olaitanmayowa.com/heartbleed-how-to-upgrade-openssl-in-centos/

sudo yum update openssl是你所需要的。

这会带你到openssl-1.0.1e-16.el6_5.7

更新后需要重新启动Apache 。 或者更好的是,如果可能的话,重新启动这个盒子,这样所有使用OpenSSL的应用程序将加载新版本。

你唯一需要做的是执行一个yum update

它会自动下载并更新由RedHat修补的,已禁用心跳的openssl-1.0.1e-16.el6_5.7移植版本。

要validation更新,只需检查更新日志:
# rpm -q --changelog openssl-1.0.1e | grep -B 1 CVE-2014-0160
你应该看到以下内容:
* Mon Apr 07 2014 Tomáš Mráz <tmraz@redhat.com> 1.0.1e-16.7 - fix CVE-2014-0160 - information disclosure in TLS heartbeat extension

确保您重新启动服务器,因为重要的服务(如Apache和SSH)使用openSSL。

我的做法是:

 openssl version OpenSSL 1.0.1e 11 Feb 2013 wget https://www.openssl.org/source/openssl-1.0.2a.tar.gz wget http://www.linuxfromscratch.org/patches/blfs/svn/openssl-1.0.2a-fix_parallel_build-1.patch tar xzf openssl-1.0.2a.tar.gz cd openssl-1.0.2a patch -Np1 -i ../openssl-1.0.2a-fix_parallel_build-1.patch ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic make make install openssl version OpenSSL 1.0.2a 19 Mar 2015 

我同意在95%的情况下,所有你需要的是sudo yum update openssl

但是, 如果您需要特定版本的openssl或特定function (不在CentOS存储库中),则可能需要从源代码进行编译 。 这里的其他答案是不完整的。 下面是什么工作 (CentOS的6.9),虽然这可能会引入与已安装的软件不兼容,并不会自动更新openssl。


https://www.openssl.org/source/selectopenssl版本;

以root身份login:

 cd /usr/local/src/ # OPTIONALLY CHANGE openssl-1.1.0f.tar.gz to the version which you want wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz sha256sum openssl-1.1.0f.tar.gz #confirm this matches the published hash tar -zxf openssl-1.1.0f.tar.gz cd /usr/local/src/openssl-1.1.0f ./config --prefix=/usr/local --openssldir=/usr/local/openssl make make test make install export LD_LIBRARY_PATH=/usr/local/lib64 #make export permanent echo "export LD_LIBRARY_PATH=/usr/local/lib64" > /etc/profile.d/ld_library_path.sh chmod ugo+x /etc/profile.d/ld_library_path.sh openssl version #confirm it works #recommended reboot here openssl version #confirm it works after reboot 

您应该通过一个符号链接replace旧的OpenSSL二进制文件:

 sudo ln -sf /usr/local/ssl/bin/openssl `which openssl` 

请记住,在此过程之后,您应重新启动服务器或重新启动与OpenSSL相关的所有服务。

rpm -qa openssl yum clean all && yum update "openssl*" lsof -n | grep ssl | grep DEL cd /usr/src wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz tar -zxf openssl-1.0.1g.tar.gz cd openssl-1.0.1g ./config --prefix=/usr --openssldir=/usr/local/openssl shared ./config make make test make install cd /usr/src rm -rf openssl-1.0.1g.tar.gz rm -rf openssl-1.0.1g

 openssl version 

这很容易! 你正在下载二进制文件? 下载最新的rpm包openssl-1.0.1e-30.el6.x86_64,使用rpm -q openssl检查当前的版本。 如果这是比较老的话,那么请运行rpm -U openssl-1.0.1e-30.el6.x86_64。 如果yumconfiguration更新这个软件包在回购和做yum更新openssl如果你的回购在RHN做简单的百胜更新openssl-1.0.1g是非常古老和valnuarable

您也可以使用以下命令检查本地更新日志以validation是否针对漏洞修补了OpenSSL:

 rpm -q --changelog openssl | grep CVE-2014-0224 

如果没有返回结果,则必须修补OpenSSL。

http://www.liquidweb.com/kb/update-and-patch-openssl-for-the-ccs-injection-vulnerability/