Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

이열매의 메모장

mod_ssl 사용하여 아파치에 SSL 설정하기 본문

서버

mod_ssl 사용하여 아파치에 SSL 설정하기

이열매 2019. 10. 29. 17:30

 

 

환경 간략 개요


  • OS: CentOS 7
  • JAVA: jdk-1.8.0
  • Apache: 2.4.41

 

 

 

SSL 설정


 

1. OpenSSL 설치

 

 RSA 키 생성을 위하여 OpenSSL이 필요하다. 리눅스엔 기본적으로 OpenSSL이 설치되어 있지만, 만약 없다면 yum으로 OpenSSL을 다운받자. 또한 이 모듈은 최신 버전을 유지하는 것을 추천한다.

 

 

  • CentOS에서 버전 확인
$ rpm -qa | grep openssl

* openssl과 openssl-devel 모두 보여져야 한다.

 

  • OpenSSL 설치
$ yum -y install openssl openssl-devel

 

 

2. 아파치 설치

 

 mod_ssl을 다운받을 수 있도록 컴파일 옵션을 주어 설치할 것이다. 아파치는 동적 모듈 시스템을 지원하므로 기존 아파치에서 mod_ssl을 추가 설치가 가능하다. 여기서는 우선 최초 설치 시 컴파일 옵션 주는 방법만을 설명한다.

 

$ ./configure --prefix=/home1/irteam/apps/apache_2.4.41 --enable-module=so --enable-so --enable-mods-shared=ssl \
--with-ssl=/usr/lib64/openssl --enable-ssl=shared --with-pcre=/home1/irteam/apps/pcre/bin/pcre-config

 

 

3. SSL 사용 설정

 

 모듈 사용 및 SSL 사용 설정 파일을 포함하기 위하여 아파치 내부(/PREFIX/apache/)의 httpd.conf 파일을 변경한다. SSL 사용을 위해서는 mod_ssl과 mod_socache_shmcb를 사용해야 하고, SSL 설정 파일로 /PREFIX/apache/conf/extra/httpd-ssl.conf 를 사용할 것이다.

 

아파치에서는 자주 사용되는 설정 파일을 conf/extra 폴더에 저장한다. SSL 설정 파일은 주석 해제가 아니라 다른 위치의 커스텀 생성한 파일로 설정 가능하지만, 여기서는 아파치에서 제공하는 SSL 기본 설정 파일을 이용한다.

 

 다음 내용의 주석을 풀면 된다.

 

httpd.conf 파일 주석 해제

 

 

4. Key와 CRT 생성

 

  • 개인키 생성
$ openssl genrsa -aes256 -out tmp-server.key -passout pass:1234 2048

* 여기서는 암호 알고리즘으로 AES256을 이용하고, 키의 길이는 2048 bit 로 설정하였다. 해당 부분은 변경이 가능하다.

 

  • 공개키 생성
$ openssl rsa -in tmp-server.key -out server.key -passin pass:1234

 

  • CRT를 생성하기 위한 정보 역할의 CSR 생성
openssl req -new -key server.key -out server.csr

* 이 CSR을 CA에 보내면 인증서가 생성된다. 그러나 여기서는 우리가 직접 서명하는 self-sign 방식만을 다룬다.

 

  • 공개키를 서명 후, CSR 정보를 가진 인증서 생성
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

* 여기서는 유효 기간이 1년(365일)인 인증서를 생성한다.

 

 

5. 브라우저 접속을 통한 SSL 설정 확인

 

 해당 서버의 IP주소 앞에 https 를 붙인 후, 접속 시 성공하면 된다. 크롬의 경우 자기서명한 인증서를 가진 서버에 https로 접근 시 다음과 같은 화면이 보이는데, 이를 무시하고 싶으면 고급 버튼을 눌러 들어가면 된다.

 

SSL 설정이 되지 않았다면 우선, 1. 방화벽을 확인하거나, 2. 포트 설정을 확인하거나, 3. SSL 설정 파일(/PREFIX/apache/conf/extra/httpd-ssl.conf) 에서 인증서와 key 경로가 제대로 맞춰져 있는지 확인하는 것을 추천한다.

 

크롬에서 https로 처음 접근 시 보여져야 할 화면

 

 

6. SSL에서 로드밸런싱 설정 (생략 가능)

 

 만약 아파치에서 mod_jk로 WAS를 로드밸런스하고 있으며, https에서도 이를 설정하고 싶을 경우에 SSL 설정 파일에서 JkMount 혹은 JkMountFile 을 지정해야 한다. <VirtualHost _default_:443></VirtualHost> 태그 사이에 다음 문장을 넣는다.

 

JkMountFile conf/uriworkermap.properties

 

 

 


참고링크

 

 

 

 

 

 

'서버' 카테고리의 다른 글

Ansible 정리  (0) 2020.01.05
CentOS 7에 MySQL 5.7 소스 설치하기  (0) 2019.11.04
OpenSSL로 Nginx에 Https 구현하기  (0) 2019.10.22
centOS7에서 아파치와 톰캣 설치  (0) 2019.10.18
웹 서버와 WAS  (0) 2019.10.18
Comments