[server] 공유 라이브러리를로드하는 동안 오류가 발생했습니다 : libcrypto.so.1.1

“openssl”을 실행하면 아래와 같은 오류가 발생합니다.

openssl : 공유 라이브러리를로드하는 동안 오류가 발생했습니다 : libcrypto.so.1.1 : 공유 객체 파일을 열 수 없습니다 : 해당 파일 또는 디렉토리가 없습니다 “

기사 에 따라 OpenSSL을 업데이트하려고 시도한 후에 발생했습니다.

어쨌든 이것을 고칠 수 있습니까?

운영체제 : CentOS 6.8 웹 서버 : 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.



답변

내가있는 OpenSSL 1.1.0c의 마지막 버전을 설치 한 후 동일한 문제가 발생했다, 나는 라이브러리 파일을 복사하는 문제를 해결 libcrypto.so.1.1, 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


답변

OpenSSL의 원래 버전 /usr/lib64에서는 링커의 검색 경로에 포함되어 있기 때문에 공유 라이브러리를 찾는 방법을 알고있었습니다 . OpenSSL의 “로컬”복사본을 다운로드하고 컴파일 할 때 /usr/local/lib64기본적으로 공유 라이브러리가 배치되었습니다 . 따라서이 디렉토리를 링커의 검색 경로에 다음과 같이 추가해야합니다 (루트).

echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf

그런 다음 실행하십시오.

ldconfig

문제가 해결 될 것으로 생각합니다.


답변

ChromeOS에서 Termux를 사용 하여이 오류가 발생하여 npmnode명령 줄 프로그램이 중단되었습니다.

실행 pkg upgrade하면 문제가 해결되었습니다!


답변

다음을 사용하여 다시 설치할 수 있습니다

yum install -y openssl-devel


답변

@benedict가 말한 것은 나를 위해 일했습니다. 그러나 일부 심볼릭 링크가 이전 버전을 가리키고 있음을 알 수 있습니다. ls -l libcrypto*/ usr / libs에서 실행 하면 링크가 표시됩니다. 아래 예와 같이 :

lrwxrwxrwx 1 root root      16 May 21 15:28 libcrypto.so -> libcrypto.so.1.0

그런 다음 sudo rm libcrypto.so@benedict에서 언급 한대로 libcrypto.so.1.1을 입력 한 다음 복사 하여 기존 링크를 먼저 제거하려고합니다 . 마지막으로 새 링크를 만들 수 있습니다.
sudo ln -s libcrypto.so.1.1 libcrypto.so

도움이 되었기를 바랍니다.


답변

libcrypto.so속한 openssl-libs패키지. --nodeps이 패키지 를 수동으로 강제로 제거 하거나 패키지로 업그레이드하면 yum, wget, curl, ssh 등에 액세스 할 수 없게됩니다. 시스템에 인터넷 액세스 권한이 있으면 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파일을 다시 설치하거나 추출 할 수 있습니다 .


답변

나는 똑같은 문제를 겪었습니다 … 다음 명령을 실행하여 문제를 해결했습니다.

ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

이렇게하면 소프트 링크가 만들어지고 계속 사용할 수 있습니다.