欢迎光临
我们一直在努力

CentOS7安全升级OpenSSL1.1.1w指南

针对全新的CentOS 7系统,我为你制定了兼顾系统稳定性(不破坏yum/SSH等核心工具)、避坑(修正之前的路径/软链接误区)、可直接执行的OpenSSL 1.1.1w升级步骤,核心原则是「隔离安装、不覆盖系统默认库」:

全新CentOS 7 编译升级OpenSSL 1.1.1w 标准步骤

核心原则(必看)

CentOS 7默认依赖OpenSSL 1.0.2系列(库文件libssl.so.10/libcrypto.so.10),yum/SSH/Python等核心工具均依赖此版本,因此:

  • 新版本OpenSSL 1.1.1w安装到/usr/local/openssl(隔离路径,不覆盖系统默认);
  • 仅创建新版本的版本专属软链接(libssl.so.1.1/libcrypto.so.1.1),不删除/覆盖系统默认的libssl.so.10/libcrypto.so.10;
  • openssl命令指向新版本,但系统底层库依赖仍保留默认版本,互不干扰。
  • 一、前置准备(新系统初始化)

    1. 检查系统初始状态

    # 查看当前OpenSSL版本(新系统通常为1.0.2)
    openssl version
    # 查看系统默认库文件(确认核心库存在)
    ls -l /usr/lib64 | grep -E "libssl.so.10|libcrypto.so.10"

    2. 安装编译依赖(新系统需补全基础工具)

    yum install -y gcc make perl zlib-devel wget patch bzip2
    # 确保系统默认OpenSSL库包完整(兜底)
    yum install -y openssl-libs

    3. 备份旧版本命令(仅备份,不删除系统库)

    # 仅备份openssl可执行文件,不触碰系统库文件
    mv /usr/bin/openssl /usr/bin/openssl.old

    二、下载并解压OpenSSL 1.1.1w源码

    # 切换到规范的源码目录
    cd /usr/local/src
    # 下载官方源码(国内推荐阿里云镜像,速度更快)
    wget https://mirrors.aliyun.com/openssl/source/openssl-1.1.1w.tar.gz
    # (可选,推荐)验证源码完整性(防止文件损坏)
    wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz.sha256
    sha256sum -c openssl-1.1.1w.tar.gz.sha256
    # 解压源码
    tar -zxvf openssl-1.1.1w.tar.gz
    cd openssl-1.1.1w

    三、配置编译参数(核心避坑)

    # 彻底清理缓存(新系统可省略,但养成习惯)
    make clean && make distclean
    # 配置参数:
    # –prefix:隔离安装到/usr/local/openssl
    # shared:生成动态库(必须)
    # -fPIC:适配CentOS 7 64位系统
    # zlib:启用zlib压缩支持
    ./config –prefix=/usr/local/openssl –openssldir=/usr/local/openssl shared zlib -fPIC

    关键:OpenSSL 1.1.1w编译后库文件默认存放在/usr/local/openssl/lib/(而非lib64),无需手动指定。

    四、编译并安装

    # 单线程编译(新系统CPU核心少也可,避免多线程隐藏错误)
    make
    # 安装到指定隔离路径(不影响系统默认文件)
    make install

    五、配置软链接(隔离式配置,不破坏系统库)

    # 1. 创建新版本openssl命令软链接(系统PATH可识别,覆盖旧命令)
    ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

    # 2. 创建新版本库文件的版本专属软链接(仅.so.1.1,不覆盖系统.so.10)
    ln -sf /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
    ln -sf /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

    # 3. 将新版本库路径加入系统配置(让程序能找到.so.1.1)
    echo "/usr/local/openssl/lib" >> /etc/ld.so.conf.d/openssl-1.1.1w.conf

    # 4. 刷新动态库缓存(生效配置)
    ldconfig

    核心避坑:不创建/usr/lib64/libssl.so/libcrypto.so的通用软链接,避免覆盖系统默认的libssl.so.10引用,保障yum正常运行。

    六、双重验证(确保升级成功+系统工具正常)

    1. 验证OpenSSL版本(确认升级成功)

    openssl version
    # 预期输出:OpenSSL 1.1.1w 11 Sep 2023

    2. 验证系统核心工具(确保yum/SSH不失效)

    # 验证yum可用(核心!)
    yum clean all && yum makecache

    # 验证SSH依赖(可选,确认远程连接不中断)
    ldd /usr/sbin/sshd | grep -E "libssl|libcrypto"
    # 预期输出(依赖系统默认的.so.10,正常):
    # libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007fxxxxxx)
    # libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007fxxxxxx)

    七、兜底回滚方案(可选,防止异常)

    若升级后出现意外(如个别程序兼容问题),可快速回滚到系统默认版本:

    # 恢复旧版openssl命令
    rm -f /usr/bin/openssl
    mv /usr/bin/openssl.old /usr/bin/openssl

    # 删除新版本库软链接
    rm -f /usr/lib64/libssl.so.1.1
    rm -f /usr/lib64/libcrypto.so.1.1
    rm -f /etc/ld.so.conf.d/openssl-1.1.1w.conf

    # 刷新缓存
    ldconfig

    # 验证回滚成功
    openssl version
    # 预期输出:OpenSSL 1.0.2k-fips 26 Jan 2017(系统默认版本)

    总结

  • 核心避坑点:
      • 新版本隔离安装到/usr/local/openssl,不覆盖系统默认路径;
      • 仅创建libssl.so.1.1/libcrypto.so.1.1软链接,不触碰系统核心的libssl.so.10/libcrypto.so.10;
      • 不创建通用的libssl.so/libcrypto.so软链接,避免干扰yum/SSH等工具。
  • 关键参数:配置时必须加shared(生成动态库)和-fPIC(适配64位),否则会导致库文件缺失;
  • 验证重点:升级后既要确认openssl version为1.1.1w,也要验证yum能正常运行,确保系统稳定性。
  • 这套步骤专为全新CentOS 7设计,无冗余操作,完全规避了之前遇到的“yum失效”“库文件找不到”等问题,可直接复制执行。

    赞(0)
    未经允许不得转载:171主机测评 » CentOS7安全升级OpenSSL1.1.1w指南
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址