1、查看操作系统版本:
cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
2、查看当前系统openssl软件包版本信息
rpm -qa |grep openssl
openssl-devel-0.9.8e-12.el5
openssl-0.9.8e-12.el5
openssl-devel-0.9.8e-12.el5
openssl-0.9.8e-12.el5
3、查看openssh软件版本信息
rpm -qa |grep openssh
openssh-askpass-4.3p2-36.el5
openssh-server-4.3p2-36.el5
openssh-4.3p2-36.el5
openssh-clients-4.3p2-36.el5
4、备份旧版本openssl重要文件,以防升级失败后openssl无法正常运行
mv /lib/libcrypto.so.6 /lib/libcrypto.so.6.bak
mv /lib/libssl.so.6 /lib/libssl.so.6.bak
mv /lib64/libcrypto.so.6 /lib64/libcrypto.so.6.bak
mv /lib64/libssl.so.6 /lib64/libssl.so.6.bak
/usr/local/ssl/bin/openssl version
OpenSSL 0.9.8y 5 Feb 2013
-----------------------------------------------------------------------------
5、编译安装新版本
tar zxvf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config shared
make
make install
/usr/local/ssl/bin/openssl version
OpenSSL 1.0.1e 11 Feb 2013
mv /usr/bin/openssl /usr/bin/openssl.bak
cp /usr/local/ssl/bin/openssl /usr/bin/
ldd /usr/bin/openssl
libssl.so.1.0.0 => /usr/local/ssl/lib/libssl.so.1.0.0 (0x00002b3886fc8000)
libcrypto.so.1.0.0 => /usr/local/ssl/lib/libcrypto.so.1.0.0 (0x00002b388722d000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003f2f600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003f2ee00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003f2ea00000)
ln -s /usr/local/ssl/lib/libcrypto.so /lib/libcrypto.so.6
ln -s /usr/local/ssl/lib/libssl.so /lib/libssl.so
ln -s /usr/local/ssl/lib/libcrypto.so /lib64/libcrypto.so.6
ln -s /usr/local/ssl/lib/libssl.so /lib64/libssl.so
echo /usr/local/ssl/lib >> /etc/ld.so.conf
ldconfig -v
6、查看新版本的安装路径及用户权限:
[root@62SERVER openssl-1.0.1e]# which openssl
/usr/bin/openssl
[root@62SERVER openssl-1.0.1e]# ls -al /usr/bin/openssl
-rwxr-xr-x 1 root root 586788 04-23 15:37 /usr/bin/openssl
7、安装成功后查看新版本的openssl版本
[root@62SERVER openssl-1.0.1e]# /usr/bin/openssl version
OpenSSL 1.0.1e 11 Feb 2013
五、风险应急方案
如升级openssl后,发现无法正常运行,请马上进行回退操作后,回退操作如下:
mv /lib/libcrypto.so.6.bak /lib/libcrypto.so.6
mv /lib/libssl.so.6.bak /lib/libssl.so.6
mv /lib64/libcrypto.so.6.bak /lib64/libcrypto.so.6.bak
mv /lib64/libssl.so.6.bak /lib64/libssl.so.6.bak