서버 운영 관리

김민수 에반젤리스트

보안 서버 구축 ( 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로 접속 후 확인 한다.
질문 및 제안하기

댓글 0

댓글 내역이 없습니다.

댓글 더 보기 첫 댓글 맨 위