1. 개요

Linux에 번들로 설치된 Apache 2.2 버전을 사용하여 운영중인 시스템에 여러 보안 취약사항 지적으로

Apache 패치 혹은 업그레이드가 필요하게 되었습니다.

기왕 하는김에~ Apache 2.4 버전으로 업그레이드 하기로 결정!

 

기존에 SSL 도 적용되어 있어서 (1.0.1.e 버전을 사용) 현재 가장 stable 한 버전인 1.1.0.h 로 올려보기로 했습니다.

https://www.openssl.org/source/  - "The latest stable version is the 1.1.0 series."

이제 1.0.1 이하 버전은 지원하지 않거든요!

 

버전은 정했고~ 그럼 어떻게 설치할까요?

운영 중인 시스템에 단일 서버라 부담이 팍팍~ yum install openssl-devel 땅~ 쳐버리기엔 여러 리스크가 있으니~~

그래서 1.1.0.h 버전을 컴파일 설치하기로 합니다. (암만!)

 

 

2. OpenSSL 컴파일 설치

일단 서버에 적당한 곳에 임시 디렉토리를 생성해두고~ OpenSSL 소스를 내려받아봅니다.

(물론, OpenSSL 설치 이전에 zlib-devel 은 꼭 설치 해주셔야 해요~!)

 

wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz

소스 파일을 받고~압축을 풀고~~ 해당경로로 이동!

그리고 아래와 같이 컴파일을 합니다. 주의해서!

 

--prefix 에 꼭 컴파일 설치될 경로를 지정해주셔야 합니다. 안그랬다간...기존에 사용하던 버전에 엎어쳐져버리는

무시무시한 일이 기다리고 있을지도 모르니까요..ㅠ^ㅠ

 

저는 64bit으로 컴파일 했습니다. Configure 의 usage는 반드시 OS컴파일러를 지정해주도록 되어있어요!

맞는 OS에 해당하는 것으로 지정해주세요~~저는 linux-x86_64 로!

 

./Configure linux-x86_64 shared no-md2 no-mdc2 no-rc5 no-rc4 --prefix=/install/openssl
make
make install

 

과정이 모두 끝났으면~ 잘 설치되었나 볼까요? 버전 확인부터!

# /installer/bin/openssl version
/installer/bin/openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
#

에러가.....얘는 어디를 바라보고 있는걸까요!

 

libssl.so.1.1 은 여기에 있단 말이야!!!

# ls -atlr
-rw-r--r-- 1 root root 4766142 2018-05-15 15:31 libcrypto.a
-rw-r--r-- 1 root root 769600 2018-05-15 15:31 libssl.a
lrwxrwxrwx 1 root root 16 2018-05-15 15:31 libcrypto.so -> libcrypto.so.1.1
lrwxrwxrwx 1 root root 13 2018-05-15 15:31 libssl.so -> libssl.so.1.1
drwxr-xr-x 2 root root 4096 2018-05-15 15:31 pkgconfig
drwxr-xr-x 2 root root 4096 2018-05-15 15:31 engines-1.1
-rwxr-xr-x 1 root root 2800516 2018-05-15 15:31 libcrypto.so.1.1
-rwxr-xr-x 1 root root 518420 2018-05-15 15:31 libssl.so.1.1
drwxr-xr-x 4 root root 4096 2018-05-15 15:31 .
drwxr-xr-x 7 root root 4096 2018-05-15 15:31 ..
# pwd
/installer/openssl/lib

 

기존 라이브러리 패스에서 찾느라고 못찾는군요!

그렇담 바로 이거죠~

export LD_LIBRARY_PATH=/installer/openssl/lib

 

이렇게 해주면~ 아래처럼 버전 확인이 됩니다! 잘 깔렸죵?^^

# ./openssl version
OpenSSL 1.1.0h 27 Mar 2018

 

새로 설치할 Apache 2.4 의 구동 계정에도 LD_LIBRARY_PATH 변수를 셋팅해줘야 해요~!

.bash_profile 에 살짝 넣어두시면 되겠습니다~~~!

요런걸 또 만나기 싫으시다면요~ㅎㅎㅎ

httpd: Syntax error on line 134 of /apache2.4/conf/httpd.conf: Cannot load modules/mod_ssl.so into server: libss .so.1.1: cannot open shared object file: No such file or directory

 

 

오늘은 여기까지! :)