CentOS8 OpenSSL1.1.1 설치

CentOS8 OpenSSL1.1.1 설치

2022-10-03 last update

7 minutes reading centos8 openssl pip

0. 전제



CentOS8에서 Python3.9와 함께 설치한 pip 명령을 실행할 때 OpenSSL1.0.2 이상의 설치가 필요하기 때문에 OpenSSL1.1.1을 넣었다.

1. 종속성 설치



사전에 다음 설치를 실시할 것.

컴파일에 필요
$ sudo yum install -y make gcc

openssl 빌드에 필요
$ sudo yum install -y zlib-devel perl-core

2. 소스 코드 얻기



다음 페이지에서 소스 코드 얻기
htps //w w. 오뎅 sl. rg/그래서/
※이번은 openssl-1.1.1h.tar.gz
$ sudo curl https://www.openssl.org/source/openssl-1.1.1h.tar.gz -o /usr/local/src/openssl-1.1.1h.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 9580k  100 9580k    0     0  6751k      0  0:00:01  0:00:01 --:--:-- 6746k

3. 데이터 해동



아래 명령을 실행 tar.gz 파일을 압축 해제.
$ ls -ltr
合計 9584
-rw-r--r--. 1 root root 9810045 12月 5 11:15 openssl-1.1.1h.tar.gz
$ sudo tar xvzf openssl-1.1.1.tar.gz

4.openssl을 소스에서 빌드하고 설치



다음 명령으로 openssl을 소스에서 빌드하고 설치
$ sudo ./config --prefix=/usr/local/openssl-1.1.1h shared zlib
Operating system: x86_64-whatever-linux2
Configuring OpenSSL version 1.1.1h (0x1010108fL) 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)         ***
***                                                                ***
**********************************************************************

계속 다음 실행.
$ sudo make depend
$ sudo make
$ sudo make test
$ sudo make install

6. 설치되었는지 확인


$ ls -l /usr/local/openssl-1.1.1h/
合計 0
drwxr-xr-x. 2 root root  37 12月 5 11:38 bin
drwxr-xr-x. 3 root root  21 12月 5 11:38 include
drwxr-xr-x. 4 root root 159 12月 5 11:38 lib
drwxr-xr-x. 4 root root  28 12月 5 11:40 share
drwxr-xr-x. 5 root root 140 12月 5 11:38 ssl

7.OpenSSL 공유 라이브러리 추가



ld.so.conf를 확인. ld.so.conf.d 아래의 파일이 포함되어 있는지 확인합니다.
$ sudo cat /etc/ld.so.conf
include ld.so.conf.d/*.conf

openssl-1.1.1h.conf를 만듭니다.
$ cat /etc/ld.so.conf.d/openssl-1.1.1h.conf
/usr/local/openssl-1.1.1h/lib/

캐시 파일을 업데이트합니다.
$ ldconfig
$ ldconfig -p | grep libssl
        libssl3.so (libc6,x86-64) => /lib64/libssl3.so
        libssl.so.1.1 (libc6,x86-64) => /usr/local/openssl-1.1.1h/lib64/libssl.so.1.1
        libssl.so.1.1 (libc6,x86-64) => /lib64/libssl.so.1.1
        libssl.so (libc6,x86-64) => /usr/local/openssl-1.1.1h/lib64/libssl.so

이하의 커맨드로 동작 확인을 한다. TLSv1.3에 대응하고 있는 것을 알 수 있다.
$ /usr/local/openssl-1.1.1h/bin/openssl ciphers -v | grep TLSv1.3
TLS_AES_256_GCM_SHA384  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(128) Mac=AEAD

파이썬으로 로드하고 싶을 때



Python에 설치한 Openssl을 로드할 수 있습니다.
이미 실제 기기에 Python3.9가 설치되어 있으므로 설치에 사용한 파일 삭제
rm -rf /usr/local/python390

파이썬을 설치.
./configure --prefix=/usr/local/python390 --with-openssl=/usr/local/openssl-1.1.1h --with-ensurepip