OpenSSL升级后导致libcrypt.so.10和libssl.so.10找不到的解决

起因

机器因为安全需要,对OpenSSL进行了升级,通过openssl version可以查看版本为1.1,执行curl提示libcrypto.so.10库不匹配。

分析

寻找解决办法:
OpenSSL是Linux的基础库,升级会带来不少问题,比如:
weg, curl提示找不到libcrypt.so.10和libssl.so.10库
通过资料分析:
这个问题就是因为升级OpenSSL导致的,新版本的SSL把1.1版本的库替换了老的1.0库,导致老的程序不兼容。因此需要让老程序也可以继续工作,不至于全部升级一遍。

解决办法:

从本机或者其他机器上找到libcrypt.so.1.0和libssl.so.1.0文件,复制到问题机器的/lib64目录,在创建1.0版本的符号链接。

# 在具有正常1.0版本的同版本机器:
scp libcrypto.so.1.0.2k <目标机器>/lib64/
scp libssl.so.1.0.2k <目标机器>/lib64/

# 在问题机器上恢复链接
cd /lib64/
ls -l libcrypto.*
ln -sf libssl.so.1.0.2k libssl.so.10
ln -sf libcrypto.so.1.0.2k libcrypto.so.10

通过ldd /usr/bin/wget 可以看到程序链接的位置,在通过符号链接来解决。

解决后的效果图:
open1.0和1.1库共存的情况

libcrypt.so.10的符号链接指向

其他

有人问:升级后,为什么不能用新库,这样做之后,新库是不是没起作用?

其实,这里因为像wget, curl这样需要使用libcrypt库的程序在编译的时候采用的是1.0版本的openssl库,升级后,导致动态库不兼容,为此,需要把libcrypt.so.10指向libcrypt.so.1.0的库,而缺省名称的不要修改,这样既可以保证新版本的openssl库采用新的库,老的技术采用老版本的,这样就做到了动态库兼容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值