본문 바로가기

NETWORK Security/보안 프로토콜

TLS1.3 (4) - 환경 구축 (Apache)

 

 

 


 

 

환경 구축에 앞서, TLS 1.3 환경 구축을 위해 웹 서버와 암호 라이브러리의 버전을 확인해야한다.

 

TLS 1.3 지원 버전

조사해본 결과, Apache 웹 서버의 경우 2.4.36 이상에서 TLS 1.3 지원이 된다.

이미 Apache 웹 서버가 pc 에 구축되어 있다 하더라도 버전이 2.4.36 이하라면 TLS 1.3 구축이 안 될수 있으니 확인이 필요하다.

 

 

 


 

 

나는 윈도우에 웹 서버를 설치하여 VM으로 접근한 후 트래픽을 캡쳐하는 방식으로 Apache 웹 서버를 구축하였다.

(웹 서버와 openssl는 설치가 되어 있어서 그 이후부터 진행하였으니 Apache 웹 서버 구축은 생략)

 

 

 

 

 

 

 

가장 먼저 Openssl 을 이용해 인증서 발급을 위한 개인키/공개키를 생성해 사용하였다.

(관리자 권한 powershell 에서 openssl.exe 실행 후 진행)

 

1. 개인키 발급

genrsa -des3 -out pricate.pem 2048 : 비밀번호 저장하여 개인키 생성

genrsa -out private.key 2048 : 비밀번호 없이 개인키 생성 (이걸로 사용)

 

 

2. 공개키 발급

rsa -in private.key -pubout -out public.key

 

 

3. CSR(인증 요청서) 생성

*CSR : SSL 인증의 정보를 암호화하여 인증 기관에 보내 인증서를 발급받게 하는 신청서

임의의 값 입력해주면서 넘어가면 된다.

 

 

4. CRT(인증서) 생성

CSR까지 만들면,  CRT 는 그냥 만들 수 있지만 사설 CA 에서 인증까지 받은 인증서를 발급할 수 있다.

 

가장 먼저 인증서에 서명을 해줄 root CA가 필요하다.

4-1. rootCA.key 생성

genrsa -aes256 -out rootCA.key 2048

 

 

4-2. rootCA 사설 CSR 생성

rootCA.key를 사용하여 1년 짜리 rootCA.pem을 생성해보자.

req -x509 -new -nodes -key rootCA.key -days 365 -out rootCA.pem

 

4-3. CRT 생성

위에서 만든 CSR을 커스텀 CA 인 rootCA의 인증을 받아 private.crt 로 생성한다.

x509 -req -in private.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out private.crt -days 365

 

 

 

 

인증서 발급 완료

 

 


 

 

 

이렇게 발급 받은 인증서를 적용하기 위해 httpd-ssl.conf  파일을 수정하고,

 

 

TLS 1.3 프로토콜을 추가한다.

그리고

#Include conf/extra/httpd-ssl.conf

#LoadModule ssl_module modules/mod_ssl.so

#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

주석을 해제하여 새로 추가한 ssl/tls 프로토콜이 적용되도록 설정한다.

 

 

 

 

 

 


 

 

이후

 

httpd.exe -k restart

httpd -k stop

httpd -k start

 

명령어로 서버 재 시작을 진행한 후 웹 브라우저에서 TLS1.3 설정을 확인해보면

 

 

 

 

Apachd 웹 서버에 TLS 1.3 구축 성공 !

 

 

 

 

 

 

다음 포스팅에서 Nginx 웹 서버 환경 TLS 1.3 구축까지 해볼 예정이다.

 

 

 

 

 

참고

: https://m.blog.naver.com/PostView.nhn?blogId=hanajava&logNo=221464002922&proxyReferer=https:%2F%2Fwww.google.com%2F

: https://namjackson.tistory.com/24

: https://bono915.tistory.com/entry/Linux-Apache-SSL-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%A0%81%EC%9A%A9-%EB%B0%A9%EB%B2%95