CentOS 7.9에서 OpenSSL 3.3.1 및 Nginx 1.26.2 컴파일 설치

컴파일 설치 주의사항

CentOS 7.9 기본 OpenSSL 버전은 1.0.2k-fips입니다. 이 버전은 SSH 등 시스템 서비스에 필수적이므로 제거하지 않고 새 버전과 공존해야 합니다.

OpenSSL 의존성 및 공존 전략

다음 서비스들은 OpenSSL에 의존합니다:

  • Nginx: HTTPS 처리
  • OpenSSH: 암호화된 원격 접속
  • MySQL/MariaDB: 암호화된 DB 연결
  • PostgreSQL: SSL 통신

버전 공존을 위한 전략:

  1. 독립 설치 경로 사용 (예: /opt/openssl-new)
  2. 응용 프로그램별 환경 변수 설정
  3. 심볼릭 링크 활용
  4. 컴파일 시 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

태그: OpenSSL nginx CentOS SSL/TLS 웹서버

6월 25일 19:26에 게시됨