OpenSSL 업그레이드 (소스 설치 / 1.0.1k to 1.1.1o in CentOS 7) 및 APM 적용하기
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
'리눅스 > OS 일반' 카테고리의 다른 글
CentOS 7 에서 OpenSSH 취약점 (취약한 알고리즘) 조치 방법 (0) | 2022.03.31 |
---|---|
Ubuntu 18.10 싱글모드 (복구모드) 진입 & 계정 잠김 해제 (0) | 2022.03.17 |
지원 종료된 CentOS 6 저장소 (Repository) 변경하기 (0) | 2021.11.25 |
Ubuntu 18.04 LTS 한글 사용하기 (한글 적용) (0) | 2021.08.06 |
Ubuntu 18.04 에서 KVM 으로 Android 9 설치하기 (네트워크 확인중) (0) | 2021.04.15 |