CentOS 7의 기본 repo를 받아 설치했더니 2020년인데 2017년 버전이다. 1.0.2는 TLS1.3도 지원하지 않는다. 버전이 최신버전이 아니라서 볼 때마다 토가 나올 것 같다. 하지만 openssl은 의존성이 매우 강하기 때문에 복잡한 어플리케이션이 설치되어 있는 경우 추천하지 않는 옵션이다. 그렇지만 보안이 점점 중요해지는 최근에는 새 어플리케이션은 최신 버전의 OpenSSL을 요구한다. 그렇기 때문에 최신버전을 수동 설치 할 필요성이 있다.
1 Source 파일 다운로드
- //www.openssl.org/source/
openssl-1.???? 버전을 받는 것을 추천한다.
wget //www.openssl.org/source/openssl-1.1.1g.tar.gz2 압축해제
tar xvf openssl-1.1.1g.tar.gz3 빌드하기
cd openssl-1.1.1g/ ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib# ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib Operating system: x86_64-whatever-linux2 Configuring OpenSSL version 1.1.1g (0x1010107fL) for linux-x86_64 Using os-specific seed configuration Creating configdata.pm Creating Makefile ********************************************************************** *** *** *** OpenSSL has been successfully configured *** *** *** *** If you encounter a problem while building, please open an *** *** issue on GitHub <//github.com/openssl/openssl/issues> *** *** and include the output from the following command: *** *** *** *** perl configdata.pm --dump *** *** *** *** (If you are new to OpenSSL, you might want to consult the *** *** 'Troubleshooting' section in the INSTALL file first) *** *** *** **********************************************************************
make -j$(nproc)
-j 는 빌드에 사용할 프로세서 개수를 뜻한다.
nproc는 프로세서의 개수를 뜻한다.
이때 zlib가 없으면 zlib을 빌드해서 설치하던지.. CentOS 7 기준으로 zlib-devel 을 설치한다.
빌드가 성공적으로 되었으면 설치한다.
... ${LDCMD:-gcc} -pthread -m64 -Wa,--noexecstack -Wall -O3 -L. \ -o test/x509_internal_test test/x509_internal_test.o \ test/libtestutil.a libcrypto.a -lz -ldl -pthread make[1]: Leaving directory `/root/openssl-1.1.1g' make installwget //www.openssl.org/source/openssl-1.1.1g.tar.gz 0
4 test
wget //www.openssl.org/source/openssl-1.1.1g.tar.gz 1실제로 빌드되자마자 바로 실행해보면 공유 라이브러리 관련한 오류가 뜬다.
5 공유 라이브러리 등록
라이브러리 등록을 위해서 동적 라이브러리 로딩 정보를 등록한다.
wget //www.openssl.org/source/openssl-1.1.1g.tar.gz 2wget //www.openssl.org/source/openssl-1.1.1g.tar.gz 3wget //www.openssl.org/source/openssl-1.1.1g.tar.gz 4wget //www.openssl.org/source/openssl-1.1.1g.tar.gz 5
6 test
wget //www.openssl.org/source/openssl-1.1.1g.tar.gz 6드디어 실행할 수 있게 되었지만
wget //www.openssl.org/source/openssl-1.1.1g.tar.gz 7아직은 1.0.2 버전이다. 기본 경로인 /usr/bin/의 openssl 을 치워야한다.
7 Symbolic Link
wget //www.openssl.org/source/openssl-1.1.1g.tar.gz 8wget //www.openssl.org/source/openssl-1.1.1g.tar.gz 9하지만 openssl이 이미 있다고 한다.
과감히 기존의 openssl을 날려버리거나 백업한다.
OpenSSL 업그레이드가 성공적이다.
8 System Variables
그러나 OpenSSL은 정상적으로 업그레이드 되었지만 다른 프로그램을 빌드할 때에는 OpenSSL의 정보를 따로 등록시켜 줄 필요가 있다. bash 를 실행하면 각종 환경변수의 설정을 담당하는 profile에 등록한다.
CentOS 7 에서는 openssl 1.1.1g를 컴파일 설치해야 합니다.
openssl 1.1.1g 으로 업그레이드 하는 이유는 단순합니다. 바로 보안이죠!
Apache, Nginx 와 같은 웹 서버에서도 TLS 1.3 프로토콜을 사용하기 위해서는 openssl 업그레이드 반드시 필요합니다.
하지만 Yum 과 같은 패키지 관리툴에서는 업그레이드가 불가능 합니다.
그래서 이번 포스팅에서는 컴파일 설치로 진행해 보겠습니다.
디테일한 설명은 생략하겠습니다. 빠른 설치가 목적이니깐요 :)
bash> 라인이 실행부분 입니다.
728x90
OpenSSL 최신 버전으로 업그레이드
CentOS 7 OpenSSL 지원 프로토콜 확인
$ cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) $ openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 $ openssl ciphers -v | awk '{print $2}' | sort | uniq SSLv3 TLSv1.2OpenSSL 삭제
yum remove openssl
기본 라이브러리 설치
yum install gcc gcc-c++ pcre-devel zlib-devel perl wget
OpenSSL Downloads
//www.openssl.org/source/
소스 컴파일 설치
wget //www.openssl.org/source/openssl-1.1.1k.tar.gztar xvfz openssl-1.1.1k.tar.gzcd openssl-1.1.1k./config shared zlibmake && make install/usr/local/bin/openssl version$ /usr/local/bin/openssl version OpenSSL 1.1.1k 25 Mar 2021라이브러리 등록 및 링크 설정
yum remove openssl0yum remove openssl1버전 확인
yum remove openssl2yum remove openssl3yum remove openssl4
OpenSSL 지원 프로토콜 확인
yum remove openssl5yum remove openssl6
참고URL
- [리눅스] OpenSSL 최신 버전으로 업그레이드(설치) : //scbyun.com/692
728x90
공유하기
게시글 관리
구독하기변군이글루(Mirror Site : Dev)저작자표시
- 카카오스토리
- 트위터
- 페이스북