必须并行安装OpenSSL 3.2.3至/usr/local/openssl-3.2.3,禁止卸载系统openssl-libs;配置ld.so.conf.d并刷新ldconfig,确保新旧库共存;通过软链接或PATH切换openssl命令,验证version输出为OpenSSL 3.2.3且built on路径正确,最后重启sshd不中断连接即完成加固。

麒麟系统升级系统底层OpenSSL版本修复安全漏洞,必须在不破坏yum、SSH、curl等核心组件依赖的前提下完成,否则执行yum update失败或ssh连接中断将导致服务器失联。
确认当前环境与风险基线
先运行cat /etc/kylin-release确认是Kylin Linux Advanced Server V10(Sword)或Desktop版,再执行openssl version -a查看完整版本及编译路径——若显示OpenSSL 1.1.1f 31 Mar 2020且built on: ...指向/usr/lib64,说明正使用系统默认OpenSSL,不可直接卸载或覆盖。
运行rpm -q openssl-libs检查是否为系统包管理安装,输出类似openssl-libs-1.1.1f-15.ky10.x86_64即属系统关键包,【绝对禁止执行 rpm -e openssl-libs】。
用ldd $(which curl) | grep ssl验证当前动态链接情况,确保看到libssl.so.1.1 => /usr/lib64/libssl.so.1.1——这表示系统服务仍绑定旧库,新版本必须并行安装。
下载并编译安装OpenSSL 3.2.3 LTS版
进入/usr/local/src目录,执行:wget https://www.openssl.org/source/openssl-3.2.3.tar.gz && tar -xzf openssl-3.2.3.tar.gz && cd openssl-3.2.3。
配置编译参数:x86_64机器运行./config --prefix=/usr/local/openssl-3.2.3 --openssldir=/usr/local/openssl-3.2.3 shared zlib;ARM64(aarch64)机器必须改用./Configure linux-aarch64 --prefix=/usr/local/openssl-3.2.3 --openssldir=/usr/local/openssl-3.2.3 shared zlib,否则生成的库在鲲鹏平台会段错误。
执行make -j$(nproc) && sudo make install完成安装。这一步耗时约3~5分钟,期间不要中断终端连接。
验证安装结果:/usr/local/openssl-3.2.3/bin/openssl version应输出OpenSSL 3.2.3 19 Sep 2026,注意末尾日期必须是2026年,否则可能下载了旧包。
配置系统级动态库搜索路径
创建配置文件:echo "/usr/local/openssl-3.2.3/lib64" | sudo tee /etc/ld.so.conf.d/openssl-3.2.3.conf。
刷新动态链接缓存:sudo ldconfig。此时ldconfig -p | grep ssl应同时列出libssl.so.1.1(系统旧版)和libssl.so.3(新版),缺一则说明路径未生效。
测试新库加载能力:LD_LIBRARY_PATH=/usr/local/openssl-3.2.3/lib64 /usr/local/openssl-3.2.3/bin/openssl s_client -connect baidu.com:443 -servername baidu.com 2>/dev/null | head -1,若返回CONNECTED(00000003)说明新库可正常发起TLS握手。
切换默认openssl命令与关键符号链接
方法一:软链接替换(推荐用于运维习惯统一场景)
备份原命令:sudo mv /usr/bin/openssl /usr/bin/openssl-system-1.1.1f;
建立新链接:sudo ln -sf /usr/local/openssl-3.2.3/bin/openssl /usr/bin/openssl。
方法二:PATH优先级控制(适合多版本共存调试)
在/etc/profile.d/openssl.sh中写入:export PATH="/usr/local/openssl-3.2.3/bin:$PATH";
执行source /etc/profile.d/openssl.sh立即生效。
【关键验证点】执行openssl version -a,输出第一行必须是OpenSSL 3.2.3 19 Sep 2026,且built on字段指向/usr/local/openssl-3.2.3,否则后续OpenSSH编译将链接失败。
最后执行sudo systemctl restart sshd(仅重启服务,不中断现有连接),再开新终端验证ssh -V是否仍显示原有OpenSSH版本——这证明OpenSSL升级未影响SSH运行,加固目标已达成。


















