CentOS OpenSSL 설치 - CentOS OpenSSL seolchi

CentOS 7의 기본 repo를 받아 설치했더니 2020년인데 2017년 버전이다. 1.0.2는 TLS1.3도 지원하지 않는다. 버전이 최신버전이 아니라서 볼 때마다 토가 나올 것 같다. 하지만 openssl은 의존성이 매우 강하기 때문에 복잡한 어플리케이션이 설치되어 있는 경우 추천하지 않는 옵션이다. 그렇지만 보안이 점점 중요해지는 최근에는 새 어플리케이션은 최신 버전의 OpenSSL을 요구한다. 그렇기 때문에 최신버전을 수동 설치 할 필요성이 있다.

 

1 Source 파일 다운로드

  • https://www.openssl.org/source/

openssl-1.???? 버전을 받는 것을 추천한다.

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

2 압축해제

tar xvf openssl-1.1.1g.tar.gz

3 빌드하기

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 <https://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는 프로세서의 개수를 뜻한다.

crypto/comp/c_zlib.c:35:19: fatal error: zlib.h: No such file or directory
 # include <zlib.h>

이때 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 install

 

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
0

4 test

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
1

실제로 빌드되자마자 바로 실행해보면  공유 라이브러리 관련한 오류가 뜬다.

5 공유 라이브러리 등록

라이브러리 등록을 위해서 동적 라이브러리 로딩 정보를 등록한다.

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
2
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
3

 

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
4
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
5

 

6 test

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
6

드디어 실행할 수 있게 되었지만

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
7

아직은 1.0.2 버전이다. 기본 경로인 /usr/bin/의 openssl 을 치워야한다.

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
8
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
9

하지만 openssl이 이미 있다고 한다.
과감히 기존의 openssl을 날려버리거나 백업한다.

tar xvf openssl-1.1.1g.tar.gz
0
tar xvf openssl-1.1.1g.tar.gz
1

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.2

OpenSSL 삭제

 

yum remove openssl

기본 라이브러리 설치

 

yum install gcc gcc-c++ pcre-devel zlib-devel perl wget

OpenSSL Downloads

https://www.openssl.org/source/ 

소스 컴파일 설치

wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
tar xvfz openssl-1.1.1k.tar.gz
cd openssl-1.1.1k
./config shared zlib
make && make install
/usr/local/bin/openssl version
$ /usr/local/bin/openssl version
OpenSSL 1.1.1k  25 Mar 2021

라이브러리 등록 및 링크 설정

yum remove openssl
0
yum remove openssl
1

버전 확인

 

yum remove openssl
2
yum remove openssl
3
yum remove openssl
4

OpenSSL 지원 프로토콜 확인

yum remove openssl
5
yum remove openssl
6

 

참고URL

- [리눅스] OpenSSL 최신 버전으로 업그레이드(설치) : https://scbyun.com/692

 

728x90

공유하기

게시글 관리

구독하기변군이글루(Mirror Site : Dev)

저작자표시

  • 카카오스토리
  • 트위터
  • 페이스북

'기타' 카테고리의 다른 글

[LDAP] OpenLDAP cert(TLS/SSL) 적용 시 에러  (0)2021.06.28[Zabbix] Zabbix 로그 파일 시간 형식(Log time format)  (0)2021.06.24[메일] 메일 SMTP 오류 코드 정리  (0)2021.06.17[리눅스] chrony 설치 및 설정(ntpd 대체)  (0)2021.06.17[LDAP] phpLDAPadmin 설치 및 연동  (0)2021.06.15