서버 운영 관리 [ Tip ]

보안 서버 구축 ( mod_ssl )

 

SSL 은 보안서버라고 하며, 보통 웹브라우저 (Explorer, Chrome, FireFox 등) 와 서버간의 통신에서 정보를 암호화 하여

전송하기 때문에 운영중 해킹을 통해 정보가 유출되더라도 정보의 내용을 보호 할 수 있게 해주는 방법입니다.

많은 서버 관리자나 사이트 운영자가 사용하고 있는 보안 구축 방법 중 하나입니다.

Linux apache 환경에서 구축 하고자 한다면 아래와 같이 진행 합니다.

 

보안 서버 구축 ( mod_ssl )


 

1. Apache 환경 및 mod_ssl 모듈 확인

# /usr/local/apache/bin/apachectl -v 또는 /etc/init.d/apachectl -v

apache 2.x 이상은 설치시 enable-ssl 을 추가해야 하며 1.x는 버전에 맞는 모듈을 직접 설치해 주어야 합니다.

 

# rpm -qa |grep openssl

openssl 설치가 되어있는지 확인 하며, 미설치시 yum -y install openssl 커맨드로 설치합니다. ( CentOS )

 

# /usr/local/apache/bin/apachectl -l  또는 /etc/init.d/apachectl -l 

위 커맨드를 통해  mod_so.c 또는 mod_ssl.c 가 로드 되었는지 확인합니다.

 

2. 개인키 생성

# openssl genrsa -des3 -out <개인키 파일명>.key 2048

 

키를 보관할 디렉토리 생성 후 위의 커맨드로 개인키를 생성합니다.

뒤에 숫자 2048은 암호화 비트수 이며 1024bit는 2010년 부터 발급이 중단 되었습니다.

 

3. CSR 생성

#openssl req -new -key iwinv.key -out iwinv.csr

생성한 key파일을 이용 하여 csr을 생성해 줍니다.

csr 항목은 아래와 같다.

************************************************************************
Country Name (2 letter code) [XX]: -> 국가코드
State or Province Name (full name) []: → 지역
Locality Name (eg, city) [Default City]: → 시/군/구
Organization Name (eg, company) [Default Company Ltd]: → 회사명
Organizational Unit Name (eg, section) []: → 부서명
CommonName (eg, your name or your server's hostname) []: → 서비스도메인명
Email Address []: -> e-mail 주소
************************************************************************

 

CSR 생성 중 아래 항목은 아무것도 기입하지 않고 엔터로 넘어갑니다. 

해당 부분의 정보가 입력 될 경우 잘못된 CSR이 생성될 수 있습니다.

 

A challenge password []:

An optional company name []:

 

CSR파일을 열어보면 --Begin으로 시작해서 --End로 끝나는 코드가 나오는데 전부 복사해서 인증서 발급기관에 신청 합니다.

 

4. 인증서 설치

# /usr/local/apache/conf/httpd.conf

해당 설정 파일에서 ssl_conf 부분의 주석을 해제합니다.

 

# vi /usr/local/apache/conf/extra/httpd-ssl.conf

해당 파일을 열어 아래 부분을 및 파일의 위치를 정확히 입력 합니다.

 

 

 DocumentRoot "/usr/local/apache/htdocs"

 ServerName www.iwinv.kr:443

 ErrorLog "/usr/local/apache/logs/error_log"

 TransferLog "/usr/local/apache/logs/access_log"

 

 SSLEngine on

 SSLCertificateFile "/usr/local/apache/conf/ssl/iwinv_kr.crt"

 SSLCertificateKeyFile "/usr/local/apache/conf/ssl/iwinv_kr_SHA1WIYHRSA.key"

 SSLCACertificateFile "/usr/local/apache/conf/ssl/AddTrustExternalCARoot.crt"

 

# vi /etc/sysconfig/iptables

방화벽 설정 파일을 열어  443 포트를 오픈해 줍니다.

위의 작업이 순차적으로 실행 되었으면 apache를 리스타트 후 해당 URL 을 https로 접속 후 확인 합니다.