본문 바로가기

리눅스

CentOS 7에서 OpenSSL을 직접 컴파일하고 설치하는 방법

728x90

CentOS 7에서 OpenSSL(OpenSSL 1.1.1)을 직접 컴파일하고 설치하는 방법

OpenSSL Downloads

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

o1

테스트 환경

  • 운영체제 버전 확인
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
  • OpenSSL 현재 버전 확인
$ openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
  • 공유 라이브러리 의존성 확인
$ ldd /usr/bin/openssl
        linux-vdso.so.1 =>  (0x00007fffc2b5f000)
        libssl.so.10 => /lib64/libssl.so.10 (0x00007fb7c9aa8000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fb7c985b000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fb7c9572000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fb7c936e000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fb7c913b000)
        libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fb7c8cd8000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fb7c8ad4000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fb7c88be000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fb7c84f0000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fb7c82e0000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fb7c80dc000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fb7c7ec3000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb7c7ca7000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fb7c9d1a000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fb7c7a80000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fb7c781e000)

OpenSSL 최신 버전 설치하기

필수 패키지 설치

  • 컴파일 과정에 필요한 패키지들을 설치합니다.
sudo yum install -y wget gcc make perl zlib-devel

작업 디렉토리로 이동

cd /usr/local/src
728x90

OpenSSL 소스 코드 다운로드

wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz --no-check-certificate
tar xfz openssl-1.1.1w.tar.gz
cd openssl-1.1.1w

컴파일 및 설치

  • 압축 해제한 소스 코드 디렉토리로 이동한 후 컴파일 및 설치를 진행합니다. 다음 명령어는 OpenSSL을 /usr/local/ssl 디렉토리에 설치하는 예시입니다.
./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.1w (0x1010117fL) 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) + 1))
sudo make install
  • ./config 명령어는 OpenSSL을 컴파일할 때 필요한 설정을 구성합니다. --prefix 옵션은 설치 디렉토리를 지정하고, --openssldir 옵션은 OpenSSL 구성 파일을 저장하는 디렉토리를 지정합니다. 이 예시에서는 /usr/local/ssl 디렉토리에 설치합니다.

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

echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/openssl-1.1.1w.conf
$ cat /etc/ld.so.conf.d/openssl-1.1.1w.conf
/usr/local/ssl/lib
ldconfig -v
ln -s /usr/local/ssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/ssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

기존 OpenSSL 파일 백업

mv /usr/bin/openssl /usr/bin/openssl_1.0.2k-fips
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

OpenSSL 신규 버전 확인

openssl version
$ openssl version
OpenSSL 1.1.1w  11 Sep 2023

 

728x90