CentOS Nginx TLS1.3 OpenSSL 1.1.1 설치 - SRPM

Share

Last Updated on 10월 7, 2021 by Jade(정현호)



Nginx - HTTP/2 와 TLS v1.3

Nginx 에서 HTTP/2 적용 과 HTTPS TLS v1.3 를 사용하기 위해서는 일정 이상의 버전이 필요합니다.

HTTP/2 : nginx 1.9.5 이상 , OpenSSL 1.0.2
HTTPS TLS v1.3 : nginx 1.13.0 이상, OpenSSL 1.1.1


하지만 CentOS 7.8 버전에서 yum(패키지)로 설치 가능한 버전은 아래와 같이 1.19.4 with OpenSSL 1.0.2k  입니다


[root]# nginx -V
nginx version: nginx/1.19.4
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled


[root]# openssl version

OpenSSL 1.0.2k-fips 26 Jan 2017


버전은 충족하지만 Build 시 Include 된 OpenSSL 의 버전이 낮음으로 Nginx를 Source Compile 하거나 Source RPM(SRPM) 으로 컴파일이 필요 합니다.



* 이전 글에서 포크된 글 입니다.



사전 패키지 설치 및 파일 다운로드

필요 패키지 설치 

• CentOS 7
[root]# yum -y install wget gcc gcc-c++ make \

openssl-devel libxml2-devel libxslt-devel \
gd-devel perl-ExtUtils-Embed GeoIP-devel \
pcre-devel rpm-build yum-utils curl gnupg2


• CentOS 8
[root]# dnf install rpm-build yum-utils \
curl gnupg2 wget gcc gcc-c++ make \
openssl-devel libxml2-devel \
libxslt-devel perl-ExtUtils-Embed \
GeoIP-devel gd-devel pcre-devel \
perl-Pod-Html



Create a user to perform the builds

[root]# groupadd builder
[root]# useradd -g builder builder




OpenSSL 1.1.1 버전 다운로드

[root]# wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz
[root]# tar zxvf openssl-1.1.1l.tar.gz -C /usr/local/src/



OpenSSL 1.1.1 빌드 및 설치

[root]# cd /usr/local/src/openssl-1.1.1l
[root]# ./config --prefix=/usr/local/openssl-1.1.1l
[root]# make ; make install



ld.so.conf 파일 내용 추가

[root]# vi /etc/ld.so.conf
/usr/local/openssl-1.1.1l/lib

[root]# ldconfig
<-- 내용 추가 후 ldconfig 명령어 실행

* CentOS8 버전의 경우 에러가 발생 할 수도 있습니다 에러 발생할 경우 생략 합니다.



버전 확인 및 경로 변경

[root]# /usr/local/openssl-1.1.1l/bin/openssl version
OpenSSL 1.1.1l 24 Aug 2021



[root]# mv /bin/openssl /bin/openssl.1.0.2k-fips
<-- 기존 버전 rename 하여 백업을 합니다.


[root]# ln -s /usr/local/openssl-1.1.1l/bin/openssl /bin/openssl
<-- 심볼링크 생성


Config&Build

SRPM 설치

• CentOS 7
[root]# rpm -ivh http://nginx.org/packages/mainline/centos/7/SRPMS/nginx-1.19.6-1.el7.ngx.src.rpm


• CentOS 8 다운로드 경로
http://nginx.org/packages/mainline/centos/8/SRPMS/



Configuration

[root]# sed -i "s|--with-http_ssl_module|--with-http_ssl_module \

--with-openssl=/usr/local/src/openssl-1.1.1l \
--with-openssl-opt=enable-tls1_3 |g" \
/root/rpmbuild/SPECS/nginx.spec



Build

[root]# rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec



Build 된 패키지 설치

[root]# cd /root/rpmbuild/RPMS/x86_64/

[root]# rpm -ivh nginx-1.19.6-1.el7.ngx.x86_64.rpm



버전 확인

[root]# nginx -V
nginx version: nginx/1.19.6
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.1.1l 22 Sep 2020
TLS SNI support enabled




이어지는 글


연관된 다른 글
- CentOS 에 Apache PHP MySQL 연동 설치 포스팅

- 우분투 환경에서 Apache PHP MySQL 연동 설치 포스팅

- 우분투 환경에서 Nginx PHP MariaDB 연동 설치 포스팅

- Nginx 에 ModSecurity 설치 - Nginx 웹 방화벽 / WAF 

- CentOS 8 버전 지원 종료 및 정책 변경 안내 - Rocky Linux 소개 

- CentOS 8 환경에서 Nginx + PHP-FPM + MariaDB 구성

 

0
글에 대한 당신의 생각을 기다립니다. 댓글 의견 주세요!x