[openssl]centos version ‘libcrypto.so.10‘ not found

因为业务模块代码调用 certificate_parse 接口函数报错,定位后说程序链接的openssl版本 1.0.2k过低导致。实际上服务器已安装过3.0.1版本,openssl version 查看结果也是3.0.1 ,但是/usr/lib64 下libssl 和libcrypto 的版本还是1.0.2k。冲动之下删了 1.0.2k相关的so文件,导致yum、scp、meson等命令都用不了,sshd服务启动不了,而且报错都是以下信息:

ImportError: /lib64/libcrypto.so.10: version `libcrypto.so.10' not found (required by /usr/lib64/python3.6/lib-dynload/_hashlib.cpython-36m-x86_64-linux-gnu.so)

折腾半天,才把服务器恢复。记录一下过程:

1、因为安装过3.0.1 版本,直接在 /usr/lib64/ 下添加 libssl.so.10 和 libcrypto.so.10 的软链接,无用;

2、删了3.0.1版本,换装1.1.1 版本,加好软链接,还是无用,重启了服务器,sshd服务起不来,只能到机房去操作;

3、重新加软链接还是不行,想还原到1.0.2k版本,yum命令用不了,拷贝安装包到u盘,然后挂载上服务器,拷贝到服务器上手动安装。安装前先删了1.1.1 版本。安装完成后重新做 libssl.so.10 和 libcrypto.so.10 的软链接。sshd服务器能启动了,上面的命令都能用了。

4、1.0.2k 下载链接(/source/old/index.html)安装步骤:

./config --prefix=/usr
make ; make install
//以上编译安装后只有.a文件,我们需要so文件
//再来一遍
./config -d shared --prefix=/usr
make clean
make ; make install

总结:1、系统是centos7.8,yum默认安装1.0.2k版本,要安装更高版本,需下载安装包手动安装。安装完后虽然 openssl version 版本是自己安装的版本,但是 /usr/lib64 下 libssl.so.10 和 libcrypto.so.10 链接的还是 1.0.2k版本。

2、/usr/lib64/下,libcrypto.so.10 文件被很多命令依赖,不能随便删除和更换。

3、还原到1.0.2k版本后,业务模块调用certificate_parse不再出错,说明一开始问题的原因还是3.0.1 版本有问题。

4、

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值