web-dev-qa-db-fra.com

erreur lors du chargement des bibliothèques partagées: libssl.so.1.1 (et libcrypto.so.1.1)

enter image description here

Comme vous pouvez le voir, il me manque des fichiers libcrypto et libssl. Je me suis exclu de mon serveur après avoir utilisé apt-update et apt-upgrade. J'exécute ceci à partir de la console Web, car ssh ni aucun autre programme ne fonctionnera pas à cause des fichiers SSL manquants.

enter image description here

J'ai essayé de supprimer et d'installer apt install openssl, de même que libssl-dev et/ou de compiler son propre openssl à partir d'une distribution. Aucune de celles-ci ne crée les fichiers .so nécessaires, j'ai exécuté locate, ces fichiers ne sont présents nulle part sur le serveur.

Il y a aussi libssl1.0.0 qui ne peut pas être réinstallé et son retrait entraînerait la suppression de 700 Mo de paquets qui tueraient littéralement le serveur et supprimeraient toutes les données.

1
user3108268

Résolu.

Le problème est que si vous installez une version non-Ubuntu de openssl (non corrigée), vous obtenez l'erreur "erreur lors du chargement des bibliothèques partagées", car il s'agit d'un élément ajouté par les développeurs Ubuntu à leur distribution (et je ne sais toujours pas pourquoi et n'a aucun sens et fait beaucoup de problèmes). Source: https://askubuntu.com/a/830532/67686

Donc, la plupart du temps, vous rencontrerez ceci si vous avez compilé une version officielle de https://www.openssl.org/source/ ex. la version openssl-1.0.2m.tar.gz. Alors que la version officielle d'Ubuntu corrigée (millions de fois, selon les gars de #ubuntu sur Freenode), la version est toujours openssl-1.0.2g et est celle que vous souhaitez corriger, compiler et installer pour la faire fonctionner.

Solution (modifiée de https://stackoverflow.com/a/22634441/3108268 ):

  1. J'ai utilisé cette version https://launchpad.net/ubuntu/+source/openssl/1.0.2g-1ubuntu1 car elle était la plus récente.
  2. wget https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.2g.orig.tar.gz (vous devrez peut-être ajouter --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.xz and mv debian openssl_1.0.2g-1ubuntu13
  6. whereis openssl localisez openssl actuel et supprimez/supprimez/sauvegardez-le.
  7. cd openssl_1.0.2g/ and patch -p1 < ../openssl_1.0.2g-1ubuntu13/patches/version-script.patch
  8. make clean and ./config shared --prefix=/usr/local --openssldir=/usr/local/ssl -Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)' (ou peut-être avez-vous simplement besoin de .config, ça ne fonctionne pas pour moi)
  9. make and make test and make install
  10. openssl version

J'avais également besoin de reboot pour pouvoir me reconnecter via SSH. Toutes ces commandes ont été exécutées via la console Web sur un serveur cloud. Les noms de répertoire de fichiers téléchargés peuvent être différents, je n'ai pas vérifié, donc ls -l.

1
user3108268