CentOS 6.10 升级 OpenSSL 从 1.0.1e-fips 到 1.0.1t
鉴于 SSL CVE-2016-2107 漏洞,需要对服务上 OpenSSL 进行升级。
通过 openssl version
得到系统安装的 OpenSSL 版本号:1.0.1e-fip,对应升级版本为 1.0.1t。
1、下载 openssl-1.0.1t
[seasidecrab]# wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz
2、解压
[seasidecrab]# tar -xzvf ./openssl-1.0.1t.tar.gz
[seasidecrab]# cd openssl-1.0.1t/
3、配置
[openssl-1.0.1e]# ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl
4、编译和安装
[openssl-1.0.1e]# make && make install
#建议安装两次,shared 作用是生成动态连接库。
[openssl-1.0.1e]# ./config shared --prefix=/usr/local/ssl --openssldir=/usr/local/ssl
[openssl-1.0.1e]# make clean
[openssl-1.0.1e]# make && make install
[notice]在安装成功后,尝试直接 ./config shared
配置安装,版本号显示直接成功了,so...[/notice]
5、检验是否安装成功
[openssl-1.0.1e]# openssl version
OpenSSL 1.0.1t 3 May 2016
6、重启服务器和 PHP-FPM
我的服务器用是是 httpd (Apache 低版本),直接用 service 指令重启。
因为种种原因,无法直接关闭 httpd 服务,所以 pkill httpd
后再启动。
PHP-FPM 同理也采用 service 启动。
异常处理
若 openssl version
出现以下异常报错:
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
这是由于 openssl 库的位置不正确造成的。我们可以依次执行以下的命令:
[seasidecrab]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[seasidecrab]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
我安装过程中一切顺利,没有出现这个问题。