컴파일 설치 주의사항
CentOS 7.9 기본 OpenSSL 버전은 1.0.2k-fips입니다. 이 버전은 SSH 등 시스템 서비스에 필수적이므로 제거하지 않고 새 버전과 공존해야 합니다.
OpenSSL 의존성 및 공존 전략
다음 서비스들은 OpenSSL에 의존합니다:
- Nginx: HTTPS 처리
- OpenSSH: 암호화된 원격 접속
- MySQL/MariaDB: 암호화된 DB 연결
- PostgreSQL: SSL 통신
버전 공존을 위한 전략:
- 독립 설치 경로 사용 (예: /opt/openssl-new)
- 응용 프로그램별 환경 변수 설정
- 심볼릭 링크 활용
- 컴파일 시 OpenSSL 경로 명시적 지정
시스템 경로 구조
- YUM 설치 경로: /usr/bin, /usr/lib64
- 소스 컴파일 기본 경로: /usr/local/bin, /usr/local/lib
OpenSSL 3.3.1 설치 절차
필수 패키지 설치
yum install -y make gcc autoconf automake libtool pkg-config zlib-devel perl bison flex openssl-devel perl-IPC-Cmd
컴파일 설정
cd /opt/openssl-3.3.1
./config --prefix=/opt/OpenSSL-3.3.1 \
shared \
zlib-dynamic \
enable-tls1_3 \
no-ssl3 \
no-weak-ssl-ciphers
컴파일 및 설치
make -j$(nproc)
make install
환경 설정 옵션
옵션 1: 전역 환경 변수 업데이트
echo 'export PATH=/opt/OpenSSL-3.3.1/bin:$PATH' >> /etc/profile
echo 'export LD_LIBRARY_PATH=/opt/OpenSSL-3.3.1/lib64:$LD_LIBRARY_PATH' >> /etc/profile
source /etc/profile
옵션 2: 응용 프로그램별 설정
export PATH=/opt/OpenSSL-3.3.1/bin:$PATH
export LD_LIBRARY_PATH=/opt/OpenSSL-3.3.1/lib64:$LD_LIBRARY_PATH
검증
openssl version -a
ldd /opt/OpenSSL-3.3.1/bin/openssl
Nginx 1.26.2 설치 절차
필수 패키지 설치
yum install -y make gcc autoconf automake libtool pam-devel openssl-devel zlib-devel libxml2-devel libxslt-devel
컴파일 설정
cd /opt/nginx-1.26.2
./configure \
--prefix=/usr/share/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-openssl=/opt/openssl-3.3.1
컴파일 및 설치
make
make install
시스템 서비스 설정
/etc/systemd/system/nginx.service 파일 생성:
[Unit]
Description=Nginx 웹 서버
After=network.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
[Install]
WantedBy=multi-user.target
사용자 및 권한 설정
groupadd nginx
useradd -r -g nginx -s /sbin/nologin nginx
chown -R nginx:nginx /usr/share/nginx
chown -R nginx:nginx /var/log/nginx
서비스 시작
systemctl daemon-reload
systemctl start nginx
systemctl enable nginx
방화벽 설정
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
설치 검증
nginx -V
openssl s_client -connect localhost:443 -tls1_3