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로 접속 후 확인 한다.
|