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
오늘은 여기까지! :)