当我运行“openssl”时出现以下错误:
openssl:加载共享库时出错:libcrypto.so.1.1:无法打开共享对象文件:没有此文件或目录”
在我尝试根据此内容更新 OpenSSL 后,发生了这种情况文章
有没有什么办法解决这一问题?
操作系统:CentOS 6.8 Web 服务器:nginx/1.10.2
更新#1:
[root@host ~]# yum info openssl
Installed Packages
Name : openssl
Arch : x86_64
Version : 1.0.1e
Release : 48.el6_8.3
Size : 4.0 M
Repo : installed
From repo : system-updates
Summary : A general purpose cryptography library with TLS implementation
URL : ***
License : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
: between machines. OpenSSL includes a certificate management tool and
: shared libraries which provide various cryptographic algorithms and
: protocols.
Available Packages
Name : openssl
Arch : i686
Version : 1.0.1e
Release : 48.el6_8.3
Size : 1.5 M
Repo : system-updates
Summary : A general purpose cryptography library with TLS implementation
URL : ***
License : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
: between machines. OpenSSL includes a certificate management tool and
: shared libraries which provide various cryptographic algorithms and
: protocols.
答案1
libcrypto.so.1.1
在安装最新版本的 openssl 1.1.0c 后,我遇到了同样的问题,我解决了将库文件和libcrypto.a
从libssl.so
复制/usr/local/lib64
到共享库的问题/usr/lib64
。
复制库后,您需要创建符号链接。
ln -s libcrypto.so.1.1 libcrypto.so
ln -s libssl.so.1.1 libssl.so
创建符号链接后重建 ldconfig 缓存也是必需的:
sudo ldconfig
答案2
使用原始版本的 OpenSSL,它知道如何找到共享库,因为/usr/lib64
它包含在链接器的搜索路径中。当您下载并编译 OpenSSL 的“本地”副本时,共享库/usr/local/lib64
默认放置在其中。因此,您可能只需要将此目录添加到链接器的搜索路径中,如下所示(以 root 身份):
echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf
然后执行:
ldconfig
我相信这会解决您的问题。
答案3
您可以使用它重新安装
yum install -y openssl-devel
答案4
属于软件包。如果您手动强制删除(使用)此软件包或通过升级损坏它,您将无法访问 yum、wget、curl、ssh 等。如果系统可以访问互联网,请使用命令下载。如果您尝试恢复版本libcrypto.so
,语法将如下所示:openssl-libs
--nodeps
openssl-libs
/usr/bin/GET
openssl-libs-1.0.2k-8.el7.x86_64
/usr/bin/GET http://downloadURL/openssl-libs-1.0.2k-8.el7.x86_64.rpm > openssl-libs-1.0.2k-8.el7.x86_64.rpm
这openssl-libs-1.0.2k-8.el7.x86_64.rpm
将为您创建包,您可以使用它来重新安装或提取丢失的.so
文件。