加载共享库时出错:libssl.so.1.1(和 libcrypto.so.1.1)

加载共享库时出错:libssl.so.1.1(和 libcrypto.so.1.1)

在此处输入图片描述

如您所见,我缺少 libcrypto 和 libssl 文件。运行 apt-update 和 apt-upgrade 后,我将自己锁定在服务器之外,我从 Web 控制台运行此操作,因为缺少 SSL 文件导致 ssh 或任何其他程序都无法运行。

在此处输入图片描述

我尝试删除并安装apt install opensslsolibssl-dev并/或从发行版编译自己的 openssl。这些都没有创建所需的 .so 文件,我运行了locate,这些文件在服务器上的任何地方都不存在。

还有无法重新安装的 libssl1.0.0,删除它将导致删除 700MB 的软件包,从而真正导致服务器崩溃并删除所有数据。

答案1

解决了。

问题是,如果您安装非 Ubuntu 版本的 openssl(未打补丁),您会收到“加载共享库时出错”的错误,因为这是 Ubuntu 开发人员添加到其发行版中的东西(我仍然不知道为什么,而且毫无意义,而且会带来很多麻烦)。来源:https://askubuntu.com/a/830532/676863

因此,如果你编译了官方版本,那么你大多会遇到这种情况https://www.openssl.org/source/例如 openssl-1.0.2m.tar.gz 版本。而官方 Ubuntu 补丁版本(根据 Freenode 上 #ubuntu 的人们的说法,补丁已达数百万次)仍然是 openssl-1.0.2g,您需要对其进行修补、编译和安装才能使其正常工作。

解决方案(编辑自https://stackoverflow.com/a/22634441/3108268):

  1. 我用过这个版本https://launchpad.net/ubuntu/+source/openssl/1.0.2g-1ubuntu13因为它是最新的。
  2. wget https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.2g.orig.tar.gz(可能需要添加--no-check-certificate
  3. tar -xvf openssl_1.0.2g.orig.tar.gz
  4. wget https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.2g-1ubuntu13.debian.tar.xz
  5. tar -xvf openssl_1.0.2g-1ubuntu13.debian.tar.xzmv debian openssl_1.0.2g-1ubuntu13
  6. whereis openssl找到当前的 openssl 并删除/移除/备份它。
  7. cd openssl_1.0.2g/patch -p1 < ../openssl_1.0.2g-1ubuntu13/patches/version-script.patch
  8. make clean./config shared --prefix=/usr/local --openssldir=/usr/local/ssl -Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)'(或者也许你只是需要简单的.config,对我来说不起作用)
  9. makemake testmake install
  10. openssl version

我还需要能够reboot通过 SSH 重新连接。所有这些命令都是通过云服务器上的 Web 控制台执行的。下载的文件目录名称可能不同,我没有检查,所以检查一下ls -l

相关内容