"OpenSSL 컴파일 설치"의 두 판 사이의 차이

 
(같은 사용자의 중간 판 13개는 보이지 않습니다)
18번째 줄: 18번째 줄:
:→ 해당 버전 대신 다른 버전을 사용하고자 할 때, 그리고 OS 패키지 매니저로는 원하는 버전을 설치할 수 없을 때, 컴파일 설치가 필요하다.
:→ 해당 버전 대신 다른 버전을 사용하고자 할 때, 그리고 OS 패키지 매니저로는 원하는 버전을 설치할 수 없을 때, 컴파일 설치가 필요하다.


==설치==
==컴파일 설치==
* 여기서는 1.1.1b로 변경하는 예시를 설명한다.
* 여기서는 1.1.1b로 변경하는 예시를 설명한다.
* 별도 옵션 없이 가장 표준적인 설치 방법을 기재했다.
* 별도 옵션 없이 가장 표준적인 설치 방법을 기재했다.
31번째 줄: 31번째 줄:
</syntaxhighlight>
</syntaxhighlight>


==설치 ==
==컴파일 설치 ==
위와 같이 설치하면...
위와 같이 설치하면...
<syntaxhighlight lang='console'>
<syntaxhighlight lang='console'>
54번째 줄: 54번째 줄:
:→ /usr/local/lib/libssl.so.1.1 이 새로 설치한 버전(1.1.1b)의 라이브러리이다.
:→ /usr/local/lib/libssl.so.1.1 이 새로 설치한 버전(1.1.1b)의 라이브러리이다.
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /root/libssl.so.1.1----1.1.1d
mkdir -p                                      /root/oldfiles
cp /usr/local/lib/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
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
</syntaxhighlight>
</syntaxhighlight>
:→ 기존 것은 /root/에 복사해두고, 새것을 덮어씌운다.
:→ 예전 것은 /root/oldfiles/로 옮기고, 새것을 덮어쓴다.
 
<syntaxhighlight lang='console'>
<syntaxhighlight lang='console'>
root@localhost:~# openssl version
root@localhost:~# openssl version
69번째 줄: 73번째 줄:


==트러블슈팅==
==트러블슈팅==
설치과정에서 발생할 수도 있는 오류들이다.
설치과정에서 발생할 수도 있는 오류 및 해결방법 예시이다.
* [[E: Unable to locate package curl]] ([[apt update]])
{| class='wikitable'
* [[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]])
| [[E: Unable to locate package curl]] || [[apt update]]
* [[gcc: not found]] ([[apt install gcc]])
|-
| [[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]]
|}


==같이 보기==
==같이 보기==
80번째 줄: 92번째 줄:


==참고==
==참고==
* https://blog.yeon.me/goto/1205
* https://sarc.io/index.php/httpd/1252-openssl
* https://wiki.openssl.org/index.php/Compilation_and_Installation ★
* https://wiki.openssl.org/index.php/Compilation_and_Installation ★
* https://sarc.io/index.php/httpd/1252-openssl
* https://www.lesstif.com/system-admin/openssl-compile-build-6291508.html
* https://www.lesstif.com/system-admin/openssl-compile-build-6291508.html


[[분류: OpenSSL]]
[[분류: OpenSSL]]
[[분류: 컴파일 설치]]
[[분류: 컴파일 설치]]

2021년 4월 20일 (화) 15:25 기준 최신판

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 }}