CentOS 系统 OpenSSL 升级或降级

本文使用编译安装 OpenSSL 的方式,使其达到升级或降级的目的。已尝试在 CentOS 8 系统下操作。CentOS 8 系统本身自带 OpenSSL 1.1.1x 版本。

目的是在系统编译安装 PHP 5.6 ,而 PHP 5.6 版本不支持在 OpenSSL 高版本中编译安装,所以进行了 OpenSSL 版本降级操作。但也同样适用于升级操作(或者yum update openssh直接更新进行升级)。

  1. 在当前目录,下载源码压缩包。

    OpenSSL 官方下载地址:https://www.openssl.org/source/

    1. wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
  2. 安装到/usr/local/ssl/目录下。

    1. # 解压到当前目录
    2. tar zxvf openssl-1.0.2k.tar.gz
    3. # 进入目录
    4. cd openssl-1.0.2k
    5. # 配置编译,指定安装目录
    6. ./config --prefix=/usr/local/ssl
    7. # 进行编译并安装
    8. make && make install
  3. 备份之前 OpenSSL 版本的文件,以方便恢复。

    1. mv -f /usr/bin/openssl /usr/bin/openssl.old
    2. mv -f /usr/include/openssl /usr/include/openssl.old
  4. 修改软链,指向新版本的 OpenSSL 路径。

    1. ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    2. ln -s /usr/local/ssl/include/openssl /usr/include/openssl

    截止到这里,只是做个软链 PHP 5.6 就能正常编译了。

  5. 写入 ld 配置文件ld.so.conf

    1. echo "/usr/local/ssl/lib">>/etc/ld.so.conf
  6. 添加 so 库的路径,添加完成之后,运行ldconfig,将新增的 so 文件缓存到/etc/ld.so.cache中。

    1. ldconfig -v
  7. 最后,确认版本是否为1.0.2k

    1. openssl version -a

    至此,完成操作。

(完)