OpenSSL 업그레이드 (소스 설치 / 1.0.1k to 1.1.1o in CentOS 7) 및 APM 적용하기

리눅스/OS 일반|2021. 12. 7. 14:15
반응형

1. OpenSSL 업그레이드

 

# openssl 현재 버전 확인
openssl version 
 
# openssl 설치 위치 확인
which openssl
# /usr/bin/openssl
 
# OpenSSL 지원 프로토콜 확인
openssl ciphers -v |awk {'print $2'} |sort |uniq
  
# 기본 라이브러리 설치
yum -y install gcc gcc-c++ perl pcre-devel zlib-devel wget
 
# 다운로드 및 소스 컴파일

cd /usr/local/src

wget https://www.openssl.org/source/openssl-1.1.1o.tar.gz
tar xvfz openssl-1.1.1o.tar.gz
cd openssl-1.1.1o/ 
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make && make install
 
# 새로운 파일 생성하여 아래 한줄 추가하고 저장(:wq)한다. (라이브러리 등록)
vi /etc/ld.so.conf.d/openssl-1.1.1o.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/openssl1.0.1k
 
# 새로 설치한 버전 심볼릭 링크 생성
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
 
# 업데이트된 버전 확인
openssl version
 
# OpenSSL 지원 프로토콜 확인
openssl ciphers -v | awk '{print $2}' | sort | uniq
openssl1.0.2k ciphers -v | awk '{print $2}' | sort | uniq

출처: https://link2me.tistory.com/2023 [소소한 일상 및 업무TIP 다루기]

 

 

2. APM 적용

 

이미 설치된 APM 은 OpenSSL 업그레이드 버전이 자동으로 적용되지 않으므로

아래와 같은 방법으로 재설치를 하여 SSL 을 적용해야 합니다.

* SSL 설치 경로 : /usr/local/ssl

1) Apache

아래는 2.4.54 에서 확인되었습니다.

# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-rewrite --enable-module=ssl --enable-ssl=shared --with-ssl=/usr/local/ssl --enable-so

# make && make install

# /usr/local/apache/bin/apachectl restart

* 확인 방법 (httpd.conf 에서 mod_ssl.so 모듈이 로드 되어있어야 함)
# curl --head localhost

2) PHP

아래는 8.1.7 에서 확인되었습니다.

export PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig

# ./configure --prefix=/usr/local/php --with-mysqli --with-openssl=/usr/local/ssl --with-pdo-mysql=mysqlnd --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf --with-zlib --disable-debug --enable-calendar --enable-ftp --enable-sockets --enable-sysvsem --with-curl --enable-mbstring

# make && make install

# /usr/local/apache/bin/apachectl restart

* 확인 방법
# php -r "echo phpinfo();" | grep -i openssl

 

3) MySQL

아래는 8.0.29 에서 확인되었습니다.

 

다른 버전의 라이브러리를 가져올 수 있도록 patchelf 패키지를 우선 설치하고 진행합니다.

# yum -y install patchelf

 

# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DWITH_SSL=/usr/local/ssl -DMYSQL_TCP_PORT=3306 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/mysql-8.0.29/include/boost_1_77_0 -DFORCE_INSOURCE_BUILD=1

 

# make && make install

 

* 확인 방법

# ldd /usr/local/mysql/bin/mysqld |grep ssl

 

4) CURL

아래는 7.88.1 에서 확인되었습니다.

# ./configure --with-ssl=/usr/local/ssl --prefix=/usr/local/curl

# make && make install

# mv /usr/bin/curl /usr/bin/curl.old    // 기존 curl 이 있을 경우

# ln -s /usr/local/curl/bin/curl /usr/bin/curl

 

* 확인 방법

# curl -V

 

반응형

댓글()