OpenSSL 컴파일 설치

1 개요[ | ]

  • openssl 버전을 바꾸고 싶다.
  • 우선은 OS 패키지 매니저로 해보고, 원하는 버전을 설치할 수 없을 경우에만 컴파일 설치를 고려하자.
  • 여기서는 다운그레이드를 하는데, 업그레이드인 경우에도 동일하다.

2 설치 전[ | ]

  • 일반적으로 openssl과 curl는 OS 패키지 매니저(예: apt)로 설치되어 다음과 같은 상황일 것이다.
root@localhost:~# openssl version
OpenSSL 1.1.1d  10 Sep 2019
root@loalhost:~# curl -V | head -1
curl 7.64.0 (x86_64-pc-linux-gnu) libcurl/7.64.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
→ openssl 명령어가 1.1.1d 버전이고, curl에도 1.1.1d 버전의 라이브러리가 연결되어 있다.
→ 해당 버전 대신 다른 버전을 사용하고자 할 때, 그리고 OS 패키지 매니저로는 원하는 버전을 설치할 수 없을 때, 컴파일 설치가 필요하다.

3 컴파일 설치[ | ]

  • 여기서는 1.1.1b로 변경하는 예시를 설명한다.
  • 별도 옵션 없이 가장 표준적인 설치 방법을 기재했다.
  • ./config 명령어가 현재 환경을 인식하여 Makefile을 알아서 만들어준다.
curl -LO https://www.openssl.org/source/openssl-1.1.1b.tar.gz
tar xvzf openssl-1.1.1b.tar.gz
cd openssl-1.1.1b/
./config
make
make install

4 컴파일 설치 후[ | ]

위와 같이 설치하면...

root@localhost:~# openssl version
OpenSSL 1.1.1b  26 Feb 2019 (Library: OpenSSL 1.1.1d  10 Sep 2019)
→ openssl 명령어 버전은 1.1.1b이지만 라이브러리는 1.1.1d 버전으로 인식된다.
root@loalhost:/openssl-1.1.1b# curl -V | head -1
curl 7.64.0 (x86_64-pc-linux-gnu) libcurl/7.64.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
→ curl에도 여전히 1.1.1d 버전의 라이브러리가 연결되어 있다.

5 후속조치 - 라이브러리 교체[ | ]

root@loalhost:/# find /usr/ -name libssl.so*
/usr/lib/x86_64-linux-gnu/libssl.so.1.1
/usr/local/lib/libssl.so.1.1
/usr/local/lib/libssl.so
→ /usr/lib/x86_64-linux-gnu/libssl.so.1.1 이 기존에 있던 버전(1.1.1d)의 라이브러리이다.
→ /usr/local/lib/libssl.so.1.1 이 새로 설치한 버전(1.1.1b)의 라이브러리이다.
mkdir -p                                      /root/oldfiles
mv /usr/lib/x86_64-linux-gnu/libssl.so.1.1    /root/oldfiles/
mv /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /root/oldfiles/
cp /usr/local/lib/libssl.so.1.1    /usr/lib/x86_64-linux-gnu/libssl.so.1.1
cp /usr/local/lib/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
→ 예전 것은 /root/oldfiles/로 옮기고, 새것을 덮어쓴다.
root@localhost:~# openssl version
OpenSSL 1.1.1d  10 Sep 2019
root@loalhost:~# curl -V | head -1
curl 7.64.0 (x86_64-pc-linux-gnu) libcurl/7.64.0 OpenSSL/1.1.1b zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
→ 라이브러리 버전도 1.1.1b로 맞춰졌다.

6 트러블슈팅[ | ]

설치과정에서 발생할 수도 있는 오류 및 해결방법 예시이다.

오류 메시지 해결방법
E: Unable to locate package curl apt update
curl: command not found apt install curl
Can't locate FindBin.pm in @INC apt install cpanminus
bash: make: command not found apt install make
gcc: not found apt install gcc

7 같이 보기[ | ]

8 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}