openssl升级后 libssl.so.10缺失及版本问题

本文解决了CentOS7中因升级OpenSSL版本导致的libssl.so.10缺失或版本不匹配的问题。通过重新编译并正确配置OpenSSL 1.0.1e版本,最终实现了系统的稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

centos7升级openssl后yum,wget等都不能用缺失 libssl.so.10

openssl从1.0.1e到1.1.0c


问题log

libssl.so.10()(64bit) is needed by openssl

required by /usr/lib64/python2.7/lib-dynload/_hashlib.so

 `libssl.so.10' module doesn't match the current version of Python


尝试了好久才解决,要么缺失,要么版本不对。

原因是,/usr/lib64 下libssl.so.10缺失,或者链接版本不对。

缺失:

ll libssl.so*
-rwxr-xr-x 1 root root 520912 Jan  4 22:32 libssl.so.1.1

或者

版本不对:

ll libssl.so*
-rwxr-xr-x 1 root root 487784 Jan  5 14:00 libssl.so.1.0.1e
-rwxr-xr-x 1 root root 520912 Jan  4 22:32 libssl.so.1.1


解决方法:

openssl-1.0.1e 下载地址

https://www.openssl.org/source/old/1.0.1/openssl-1.0.1e.tar.gz


载完毕后解压,注意编译安装openssl需要c和prel环境。
   通过./config shared zlib-dynamic 来生成Makefile文件。
然后make
生成

libssl.so.1.0.0

libcrypto.so.1.0.0


将两个文件拷贝到   /usr/lib64  


创建软链接(ln源就是上面查出的对应版本的库文件):

cd /usr/lib64/

ln -s libssl.so.1.0.0          libssl.so.10

ln -s libcrypto.so.1.0.0    libcrypto.so.10


然后在/usr/lib64/ 下

 ll libssl.so*
lrwxrwxrwx 1 root root     15 Jan  5 14:06 libssl.so.10 -> libssl.so.1.0.0
-rwxr-xr-x 1 root root 487784 Jan  5 14:00 libssl.so.1.0.0
-rwxr-xr-x 1 root root 520912 Jan  4 22:32 libssl.so.1.1

解决!!!!!!!!!


### 安装缺失的 `libcrypto.so.10` 和 `libssl.so.10` 库 对于 Linux 系统中遇到的 `libcrypto.so.10` 和 `libssl.so.10` 缺失问题,可以通过安装兼容包来解决。具体操作如下: #### 使用 yum 安装兼容 OpenSSL 版本 针对基于 Red Hat 的发行版(如 CentOS 或 RHEL),可以利用官方仓库中的兼容包进行修复。 ```bash sudo yum install compat-openssl10 ``` 这条命令会自动下载并安装所需的库文件及其依赖项[^5]。 #### 手动编译安装特定版本OpenSSL 当无法通过软件源获取合适版本时,则需手动编译安装旧版本 OpenSSL 来提供这些共享对象支持。 1. 下载目标版本源码压缩包; 2. 解压至本地目录; 3. 配置构建选项以便于后续管理维护; 4. 构建过程执行 make 命令完成编译工作; 5. 将生成的目标文件复制到适当位置,并创建必要的符号链接指向新路径下的动态链接库实例。 例如,假设已经准备好 OpenSSL 1.0.2 源代码: ```bash tar xfz openssl-1.0.2.tar.gz && cd ./openssl-1.0.2/ ./config shared --prefix=/opt/openssl10 --openssldir=/etc/pki/tls make depend && sudo make install_sw ln -svf /opt/openssl10/lib/*so*.* /usr/local/lib64/. ``` 上述脚本片段展示了如何配置、编译以及部署自定义前缀下的 OpenSSL 实例,并建立相应软链使得应用程序能够定位所需 API 接口实现[^1]。 #### 更新环境变量加速加载速度 为了让系统优先考虑新的 SSL/TLS 动态链接库而非默认自带的那个较新版,可以在 shell 初始化脚本里追加 LD_LIBRARY_PATH 设置语句,像这样: ```bash echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64' >> ~/.bashrc source ~/.bashrc ``` 这一步骤有助于确保所有进程都能顺利找到期望版本的加密函数接口而不会报错退出[^3]。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值