Home | Data Center | Contact US | Login

제목 보안서버 SSL Linux Apache 1.X버전
첨부파일 보안서버 SSL Linux Apache 1.X 버전.pdf 작성일 2007-09-10 09:32:22
보안서버 SSL
 
보안서버 SSL 이란 Secure Sockets Layer 의 머리글로서 웹서버 인증, 서버 인증이라고도 합니다. 브라우저와 서버간의 통신에서 정보를 암호화 함으로써 도중에 해킹을 통해 정보가 유출 되더라도 정보의 내용을 보호할 수 있게 해 주는 보안 솔루션으로 벌써 수백만의 사이트운영자에 의해 사용되어지고 있습니다. 전세계적인 표준 보안 기술은 1994년 Netscape 에 의해 개발되었으며 웹서버과 웹브라우저간의 모든 데이터를 암호화해서 보내게 됩니다.
 
Apache_1.x + mod_ssl + Mysql + Php + Zend + OpenSSL 설치

 
( 1 ) OpenSSL 라이브러리 확인
 
OpenSSL 설치 유/무를 확인하신 후 이미 설치가 되어있는 경우 기술문서의 OpenSSL 부분을 적용하지 않으셔도 무방합니다.
 
① rpm 버전확인
[root@nextline ~]# rpm -qa | grep openssl
rpm 버전으로 설치된 openssl의 유/무를 확인합니다.
Source 버전 설치를 위해 rpm 버전을 삭제하시면 안되며 openssl 삭제 시 의존성을 가지는 라이브러리 파일의 오류로 ssh, sendmail 등의 서비스가 실행되지 않으니 주의하시기 바랍니다.

 
② Source 버전확인
 
whereis 명령어
명령의 실행 파일, 소스, 매뉴얼 페이지가 어디 있는지 보여줍니다.
 
[root@nextline ~]# whereis openssl
rpm 버전이 설치되어 있지 않을 시 위 명령어를 통해 소스버전 설치 유/무를 확인합니다.

 
 
 
( 2 ) Source 파일 다운로드
 
wget은 웹에서 자동적으로 파일을 받아오는데 사용되는 유틸리티이며 HTTP, HTTPS, FTP 프로토콜을 지원합니다.
 
① apache_1.3.37.tar.gz
다운로드 사이트 : http://httpd.apache.org/download.cgi
[root@nextline ~]# wget http://mirror.apache-kr.org/httpd/apache_1.3.37.tar.gz

 
② mysql-4.1.22.tar.gz
다운로드 사이트 : ftp://mysql.byungsoo.net/pub/mysql/
[root@nextline ~]# wget
ftp://mysql.byungsoo.net/pub/mysql/Downloads/MySQL-4.1/mysql4.1.22.tar.gz


③ php-5.2.3.tar.gz
다운로드 사이트 : http://www.php.net/downloads.php
[root@nextline ~]#
 wget http://www.php.net/get/php-5.2.3.tar.gz/from/kr2.php.net/mirror

 
④ gd-2.0.35.tar.gz
다운로드 사이트 : http://www.libgd.org/releases/
[root@nextline ~]# wget http://www.libgd.org/releases/gd-2.0.35.tar.gz

 
⑤ ZendOptimzer-3.3.0-linux-glibc21-i386.tar.gz
다운로드 사이트 : http://www.zend.com/
다운로드 받은 ZendOptimzer을 ftp을 이용하여 업로드 합니다.
 
⑥ mod_ssl-2.8.28-1.3.37.tar.gz
다운로드 사이트 : http://www.modssl.org/
[root@nextline ~]# wget
http://www.modssl.org/source/mod_ssl-2.8.28-1.3.37.tar.gz

 
⑦ openssl-0.9.8e.tar.gz
다운로드 사이트 : http://www.openssl.org/source/
[root@nextline ~]# wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz

 
⑧ Source 파일 확인
[root@nextline ~]# ls
ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz 
gd-2.0.35.tar.gz
apache_1.3.37.tar.gz
mysql-4.1.22.tar.gz
php-5.2.3.tar.gz
mod_ssl-2.8.28-1.3.37.tar.gz
openssl-0.9.8e.tar.gz

 
 
 
( 2 ) Source 파일 압축해제
 
[tar 명령어 옵션]
tar 명령어는 파일을 묶거나 풀 때 사용되는 리눅스 명령어 입니다.
c : tar 파일을 생성할 때(여러 개의 파일을 하나의 파일로 묶을 때)
v : 묶을 때나 풀어줄 때 파일들의 내용을 자세하게 보려고 할 때.
z : gzip과 관련하여 압축이나 해제를 한꺼번에 하려고 할 때 사용.
x : 주어진 이름의 파일에 대하여 추출
사용법: tar [옵션] 파일명
 
① apache_1.3.37.tar.gz
[root@nextline ~]# tar zxvf apache_1.3.37.tar.gz

 
② mysql-4.1.22.tar.gz
[root@nextline ~]# tar zxvf mysql-4.1.22.tar.gz

 
③ gd-2.0.35.tar.gz
[root@nextline ~]# tar zxvf gd-2.0.35.tar.gz

 
④ php-5.2.3.tar.gz
[root@nextline ~]# tar zxvf php-5.2.3.tar.gz

 
⑤ ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz
[root@nextline ~]# tar zxvf ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz

 
⑥ mod_ssl-2.8.28-1.3.37.tar.gz
[root@nextline ~]# tar zxvf mod_ssl-2.8.28-1.3.37.tar.gz

 
⑦ openssl-0.9.8e.tar.gz
[root@nextline ~]# tar zxvf openssl-0.9.8e.tar.gz

 
압축해제을 해제하면 아래와 같이 패키지별 소스디렉토리가 생성됩니다.
ZendOptimizer-3.3.0-linux-glibc21-i386
mysql-4.1.22
gd-2.0.35
php-5.2.3
mod_ssl-2.8.28-1.3.37
apache_1.3.37
openssl-0.9.8e

 
 
( 3 ) OpenSSL 설치
 
① 컴파일 환경설정
[root@nextline ~]# cd openssl-0.9.8e
[root@nextline openssl-0.9.8e]# ./config --prefix=/usr/local/openssl
 
[ 컴파일 옵션]
--prefix=/usr/local/openssll
openssl이 설치될 경로를 지정하는 옵션입니다.

 
② 컴파일
[root@nextline openssl-0.9.8e]# make

 
③ 설치 테스트
[root@nextline openssl-0.9.8e]# make test

 
④ 설치
[root@nextline openssl-0.9.8e]# make install

 
⑤ 설치상태 확인
설치가 완료되면 컴파일 시 지정된 경로에 openssl 디렉토리가 생성됩니다.
[root@nextline openssl-0.9.8e]# ls /usr/local
openssl
openssl 명령의 실행 파일, 소스, 매뉴얼 페이지의 인식여부를 확인합니다.
[root@nextline openssl-0.9.8e]# whereis openssl
openssl: /usr/local/bin/openssl /usr/local/openssl

 
 
( 4 ) Apache1 + mod_ssl 연동설치
 
① mod_ssl 컴파일 환경설정
[root@nextline ~]# cd mod_ssl-2.8.28-1.3.37
[root@nextline mod_ssl-2.8.28-1.3.37]# ./configure
--with-apache=../apache_1.3.37

 
② 아파치 컴파일 환경설정
[root@nextline mod_ssl-2.8.28-1.3.37]# cd ../apache_1.3.37
[root@nextline apache_1.3.37]# SSL_BASE=/usr
[root@nextline apache_1.3.37]# ./configure
--prefix=/usr/local/apache
--enable-module=ssl
--enable-rule=SHARED_CORE
--enable-shared=max
--enable-module=so
[컴파일 옵션]
아파치가 설치될 경로를 지정합니다.
--prefix=/usr/local/apache
mod_ssl 을 모듈을 아파치에 올리기위한 옵션입니다.
--enable-module=ssl
DSO 방식으로 아파치를 컴파일 하기위한 옵션입니다.
--enable-rule=SHARED_CORE --enable-shared=max --enable-module=so

 
③ 컴파일
[root@nextline apache_1.3.37]# make

 
④ 설치
[root@nextline apache_1.3.37]# make certificate

 
⑤ 정보입력
이 단계에서는 mod_ssl의 적용 테스트를 위함이므로 CSR 초기 정보입력부분은 Encrypt the private key now?  제외한 부분을 디폴트로 [ Enter ]을 입력하고 넘어갑니다.
 
Signature Algorithm ((R)SA or (D)SA) [R]: [ Enter]

 
1. Country Name(2 letter code) [XY]: [ Enter]
2. State or Province Name(full name)[Snake >Desert]: [ Enter]
3. Locality Name(eg, city)[Snake >Town]: [ Enter]
4. Organization Name(eg, company)[Snake Oil, Ltd]: [ Enter]
5. Organizational Unit Name (eg, section)[Webserver Team]: [ Enter]
6. Common Name (eg, FQDN)[www.snakeoil.dom]: [ Enter]
7. Email Address(eg, name@FQDN) [www@snakeoil.dom]: [ Enter]
8. Certificate Validity(days) [365]: [ Enter]

 
Encrypt the private key now? [Y/n]: n
[y]을 입력할 경우 /usr/local/apache/bin/apachectl startssl 명령시 패스워드를 묻게됩니다.

 
 
정보입력이 완료되면 아래 화면과 같이 SSL KEY 경로 및 결과가 출력되며 이 경로로 SSL VirtualHost 부분을 설정하므로 메모해 주시기 바랍니다.

 
 ⑥ 설치
[root@nextline apache_1.3.37]# make install

 
 
⑦ httpd.conf 파일편집 
[vi 에디터 사용법]
사용형식: vi [옵션] [생성할 파일명/편집할 파일명]
vi 에디터는 입력모드, 명령모드, 실행모드로 구분됩니다.
입력모드: vi 편집화면에서 문자를 입력할 수 있는 모드로서 입력모드로 진입하기 위해서는 i, a, o, I, A, O, R등이 있습니다. 즉 초기 vi 편집기 모드는 명령어 모드로 진입을 하기때문에 문자를 입력하기 전에 앞의 단축키중 하나를 먼저 입력해야 원하는 문자를 입력할 수 있습니다.
명령모드: 커서이동/문자삭제/문자(열)교체/문자열검색 등을 할수 있는 모드로서 입력모드에서 편집이 완료되면 Esc키를 눌러 명령모드로 진입하면 됩니다.
실행모드: 특별한 명령어를 실행하는 모드로서 명령어모드에서 ":"(콜론)를 누르면 vi 화면 하단 좌측에 vi 특수명령어를 입력할 수 있습니다.
 
[실행모드의 일반적으로 쓰이는 특수 명령어]
q : 수정 작업이 이루어지지 않은 상태에서 vi 편집기에서 빠져나옵니다.
q! : 수정 작업이 이루어진 부분을 적용시키지 않고 vi 편집기를 강제로 빠져나옵니다.
w : 수정된 작업을 저장합니다.
wq : 수정된 작업을 저장하고 vi 편집기에서 빠져나옵니다.
초기 명령어모드-> 입력모드진입 -> 편집 -> 명령어모드 -> 실행모드 -> 종료
[root@nextline apache_1.3.37]# vi /usr/local/apache/conf/httpd.conf
 
 
 
⑤ ServerName 설정
ServerName 부분에 아이피 혹은 도메인을 기입합니다.
ServerName xxx.xxx.xxx.xxx

 
⑥ SSL Virtual Host 설정
다른 SSL 설정은 디폴트로 하고 … 지시자내의 아래항목만 아이피 및 도메인에 맞게 편집합니다.
[아이피:포트]
DocumentRoot "/home/nextline/public_html" [홈디렉토리경로]
ServerName nextline.co.kr [도메인명]
SSL 도메인은 호스트별로 인증을 받아야 하므로 인증 받을 도메인을 입력합니다.

 
⑦ SSL 설정적용
[root@nextline apache_1.3.37]# /usr/local/apache/bin/apachectl startssl

 
⑧ ssl 443 포트확인
[root@nextline src]# netstat -anp | grep httpd
tcp 0 0 :::80  :::*  LISTEN      2215/httpd
tcp 0 0 :::443 :::*  LISTEN      2215/httpd

 
⑨ https 접속테스트
https://nextline.co.kr 접속을 하시면 아래와같이 보안경고 창이 보여집니다.
[예] – [Enter]

 
 ⑩ SSL 보안적용 화면
mod_ssl이 정상적으로 적용되었습니다. 개인키/CSR 생성 및 CRT(인증서) 적용은 이 문서의 [OpenSSL을 이용한 개인키/CSR/CRT 생성/인증서접수/인증서설치] 부분을 적용합니다.
 
 
 
( 5 ) Mysql 설치
 
① 컴파일 환경설정
[root@nextline ~]# cd mysql-4.1.22
[root@nextline mysql-4.1.22]# ./configure
--prefix=/usr/local/mysql
--with-charset=euckr
 
[컴파일 옵션]
Mysql 이 설치될 경로를 지정하는 옵션입니다.
--prefix=/usr/local/mysql
문자셋을 한국어로 설정하는 옵션입니다.
--with-charset=euckr

 
② 컴파일
[root@nextline mysql-4.1.22]# make

 
③ 설치
[root@nextline mysql-4.1.22]# make install

 
④ mysql 데이터 디렉토리생성
[root@nextline mysql-4.1.22]# /usr/local/mysql/bin/mysql_install_db

 
⑤ 데이터 디렉토리확인
[root@nextline mysql-4.1.22]# ls /usr/local/mysql
데이터 디렉토리 [var]

 
⑥ mysql 계정생성
[root@nextline mysql-4.1.22]#usradd –M –s /sbin/nologin mysql; passwd mysql
New UNIX password : [mysql 패스워드를 지정합니다]
Retype new UNIX password : [mysql 패스워드를 재 입력합니다]

 
⑦ mysql 디렉토리 소유권변경
chown - 리눅스의 소유권 변경 명령어 입니다.
-R 옵션 - 하위 디렉토리까지 모두 적용합니다.
[root@nextline mysql-4.1.22]#chown –R mysql.mysql /usr/local/mysql

 
⑧ mysql 데몬구동
mysql를 백그라운드로 구동합니다.
[root@nextline mysql-4.1.22]#/usr/local/mysql/bin/mysqld_safe &

 
⑨ mysql 데몬 구동확인
[root@nextline mysql-4.1.22]# netstat -anp | grep mysqld
tcp  0 0 0.0.0.0:3306    0.0.0.0:*  LISTEN      2433/mysqld


⑩ mysql root 패스워드설정
[root@nextline mysql-4.1.22]#/usr/local/mysql/bin/mysqladmin –u root password ‘xxxxxx’

 
⑪ mysql 접속확인
[root@nextline mysql-4.1.22]#mysql –u root –p
접속이 정상적으로 이루어지며 mysql 설치가 완료된 화면입니다.

 
 
( 6 ) GD 설치

① 컴파일 환경설정
[root@nextline ~]# cd gd-2.0.35
[root@nextline gd-2.0.35]# ./configure --prefix=/usr/local/gd2
 
[컴파일 옵션]
GD가 설치될 경로를 지정하는 옵션입니다.
--prefix=/usr/local/gd2

 
② 컴파일
[root@nextline gd-2.0.35]# make

 
③ 설치
[root@nextline gd-2.0.35]# make install

 
④ 설치확인
[root@nextline gd-2.0.35]# ls /usr/local/

 
 
 
( 7 ) PHP 설치

① 컴파일 환경설정
[root@nextline ~]# cd php-5.2.3
[root@nextline php-5.2.3]# ./configure --prefix=/usr/local/php \
> --with-apxs=/usr/local/apache/bin/apxs \
> --with-config-file-path=/usr/local/lib \
> --with-mysql=/usr/local/mysql \
> --with-gd=/usr/local/gd2 \
> --enable-gd-native-ttf \
> --with-freetype-dir=/usr \
> --with-zlib \
> --with-iconv \
> --with-imap \
> --with-imap-ssl \
> --with-kerberos \
> --enable-mbstring \
> --enable-track-vars \
> --enable-ftp \
> --disable-debug
 
[컴파일 옵션]
 
--prefix=/usr/local/php
php 설치경로를 지정합니다.
 
--with-apxs=/usr/local/apache/bin/apxs
공유된 apache 모듈을 연동하기 위한 옵션입니다.
 
--with-config-file-path=/usr/local/lib
php설정파일 php.ini파일이 존재할 위치를 지정합니다.
 
--with-mysql=/usr/local/mysql
Mysql과 연동하기 위한 옵션입니다.
 
--with-gd=/usr/local/gd2
php에서 gd라이브러리관련 함수를 사용하여 gd를 지원하기 위한 옵션입니다.
 
--enable-gd-native-ttf
GD 라이브러리에서 FreeType를 함하는 옵션입니다.
 
–-with-freetype-dir=/usr
freetype2를 지원하기 위한 옵션입니다.
 
--with-zlib
데이터압축 라이브러리로서 php에서 zlib을 지원하기 위한 옵션입니다.
 
--with-iconv
인코딩 변환프로그램으로 iconv를 지원하기 위한 옵션입니다.
 
--with-imap
pop 과 함께 메일수신데몬으로 사용되는 서비스로서 imap를 지원하기 위한 옵션입니다.
 
--with-kerberos
Kerberos는 클라이언트 서버 애플리케이션의 입증을 제공하기 위하여 상칭적인 암호법을 이용하는 네트워크 인증 프로토콜로서 kerberos를 지원하기 위한 옵션입니다.
 
--enable-mbstring
multi-byte문자를 지원하기 위한 옵션으로 많은 언어를 표현하기 위하여 이용되며, php에서 mbstring를 지원하기 위한 옵션입니다.
 
--enable-track-vars
HTTP_GET_VARS, HTTP_POST_VARS, HTTP_COOKIE_VARS 배열에 들어있는 GET /
POST / cookie 변수들이 어디로부터 왔는지 기억하게 만듭니다. 이 옵션은 단지 Default 값 을 정하는 것뿐이며, 후에 configuration file의 track_vars 지시자에 의해
Enable/Disable 할 수 있습니다.
 
--enable-ftp
php에서 ftp관련 함수를 지원하기 위한 옵션입니다.
 
--enable-debug
Zend Optimizer를 사용하기 위해서는 debugging을 사용하지 않습니다.
 
[그외 옵션]
 
--enable-sockets
소켓(socket) 파일을 사용하기 위한 옵션입니다.
 
--with-language-korean
한국어를 사용하기 위한 옵션입니다.
 
--enable-dba=shared
DBA를 동적으로 적재할 수 있는 공유 모듈 형태로 만드는 옵션입니다.
 
--enable-gdbm[=DIR]
GDBM 지원을 포함하는 옵션입니다.
 
--enable-memory-limit
php에서 메모리 제한 기능을 지원하는 옵션입니다.

 
② 컴파일
[root@nextline php-5.2.3]#make

 
⑤ 설치
[root@nextline php-5.2.3]#make install

 
⑥ php 설정파일 복사
[root@nextline php-5.2.3]#cp php.ini-dist /usr/local/lib/php.ini

 
⑦ 아파치 설정파일 편집
[root@nextline php-5.2.3]#vi /usr/local/apache/conf/httpd.conf

 
⑧ PHP 인덱스파일 설정

    DirectoryIndex index.html index.htm index.php index.jsp


 
⑨ AddType 설정
AddType application/x-httpd-php .php .php4 .php3

 
⑩ 설정파일 적용
[root@nextline php-5.2.3]#/usr/local/apache/bin/apachectl stop
[root@nextline php-5.2.3]#/usr/local/apache/bin/apachectl startssl

  
 
( 8 ) ZendOptimizer 설치
 
① install.sh 실행
[root@nextline ~]# cd ZendOptimizer-3.3.0-linux-glibc21-i386
[root@nextline ZendOptimizer-3.3.0-linux-glibc21-i386]# ./install.sh

 
② OK

 
③ Zend Optimizer 라이센스 화면입니다. [EXIT]

 
④ 라이센스 동의 화면입니다. [Yes]

 
⑤ Zend 설치경로를 지정하는 화면입니다.
/usr/local/Zend(절대경로) 확인 후 를 선택합니다. Zend Optimizer 설치 경로가 자동 지정되지 않을 시 수동으로 /usr/local/Zend 경로를 지정해 주시면 됩니다. (Linux OS의 응용프로그램은 기본 /usr/local에 설치되기 때문에 /usr/local/Zend로 지정합니다.)
[OK]

 
⑥ php.ini의 경로를 지정하는 화면입니다.
php설치 시 php.ini 파일이 /usr/local/lib에 생성되기 때문에 /usr/local/lib(절대경로) 지정합니다.
[OK]

  
⑦ Zend Optimizer + Apache 연동할 것인지를 묻는 화면입니다
[Yes]

  
⑧ apaachectl의 경로를 지정하는 화면입니다.
[OK]

  
⑨ php.ini 파일의 php.ini-zend_optimizer.bak 백업파일을 생성하는 화면이며, 생성위치는 php.ini 파일이 존재하는 /usr/local/lib 경로에 생성됩니다.
[OK]

 
⑩ Zend Optimizer 설치완료 화면입니다
[OK]

 
⑪ apache 재 시작을 묻는 화면입니다
[Yes]

 
⑫ Apache 재 시작 성공
[OK]

 
⑬ phpinfo 파일생성
[root@nextline ~]#vi /usr/local/apache/htdocs/php_test.php

 
⑭ phpinfo 코드설정
phpinfo();
?>

 
⑮ APM 연동확인
http://xxx.xxx.xxx.xxx/php_test.php

 
 
( 9 ) CSR 생성
 
CSR ( Certificate Signing Request ) 이란?
 
SSL 서버를 운영하는 회사의 정보를 암호화하여 인증기관으로 보내 인증서를 발급받게 하는 일종의 신청서이며 CSR은 ASCII 텍스트 화일로 생성됩니다.
 
① 개인키 생성
Openssl 명령어를 이용하여 웹서버의 RSA키(1024비트 암호화)를 생성합니다.
개인키 생성시 DES/RSA 암호화 방식을 선택할 수 있으나 DES 방식으로 개인키를 생성하실 경우 아파치를 구동하면 개인키 생성시 입력한 패스워드를 묻게 되며 부팅 시 아파치 데몬이 자동으로 구동되도록 설정하신 경우 부팅 중 패스워드를 묻게 되므로 관리의 원활함을 위해 RSA 방식으로 개인키를 생성합니다.
/usr/local/src 디렉토리로 이동하여 키생성 합니다.
 
[root@nextline ~]# cd /usr/local/src
openssl genrsa 1024 > 도메인.key
 
[root@nextline src]# openssl genrsa 1024 > nextline.co.kr.key


② 도메인 조회
CSR 정보입력 및 인증신청서 작성시 도메인 등록업체 및 도메인 조회사이트에서 도메인을 조회하여 조회결과와 일치하게 정보를 입력하여야 합니다.
http://whois.nic.or.kr

 
[CSR 항목에 대한 설명]
CSR 정보 입력 시 도메인 등록업체에 등록하신 정보와 동일한 정보를 입력합니다.
 
Country Name
이것은 두 자로 된 ISO 형식의 국가 코드입니다.
State or Province Name
시 이름을 입력해야 하며 약어를 사용할 수 없습니다.
Locality Name
이 필드는 대부분의 경우 생략이 가능하며 업체가 위치한 곳를 나타냅니다.
Organization
사업자 등록증에 있는 회사명과 일치되는 영문회사명을 입력하시면 됩니다.
Organization Unit
"리눅스 관리팀", "윈도우 관리팀" 등과 같이 업체의 부서를 입력할 수 있습니다.
Common Name
인증받을 도메인주소를 입력하시면 됩니다.
이 정보로 웹 사이트를 식별하므로 호스트 이름을 변경할 경우 다른 디지털 ID를 요청해야 합니다. 호스트에 연결하는 클라이언트 브라우저가 디지털 ID의 이름과 URL이 일치하는지를 확인합니다.
 
[CSR 항목 입력시 주의사항]
Common Name 에는 인증서를 설치할 사이트의 도메인의 이름을 정확하게 입력하셔야 하며 IP 주소, 포트번호, 경로명, http:// 나 https:// 등은 포함할 수 없습니다. 
CSR 항목에는 < > ~ ! @ # $ % ^ * / \ ( ) ? 등의 특수 68 문자를 넣을 수 없습니다. 
CSR 생성후 서버에 개인키 (Private Key) 가 생성됩니다. 개인키를 삭제하거나 분실할 경우 인증서를 발급받아도 설치가 불가합니다. 따라서 꼭 개인키를 백업받아 두셔야 합니다.
정보입력과정 마지막에 나오는 A challenge password 와 An optional company name 두 항목은 입력하지 마시고 Enter 만 누르고 넘어가야 합니다. 두 정보가 입력될 경우 잘못된 CSR 생성될 수 있습니다.
 
③ CSR(인증요청서) 생성
[root@nextline src]# openssl req -new -key nextline.co.kr.key > nextline.co.kr.csr

 
[CSR 정보입력 항목]
Country Name (2 letter code) [AU]:KR
State or Province Name (full name) [Some-State]:Seongnam Gyeonggi-do
Locality Name (eg, city) []:Yatap-dong Bundang-gu
Organization Name (eg, company) [Internet Widgits Pty Ltd]:nextline
Organizational Unit Name (eg, section) []:Technological Support Department
Common Name (eg, YOUR name) []:nextline.co.kr
Email Address []:nextline@nextline.co.kr
A challenge password/An optional company name 항목은 입력하지 않고 Enter만 누르고 넘어갑니다.
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

 
③ CSR 확인
[root@nextline src]# openssl req -noout -text -in nextline.co.kr.csr

 
( 10 ) 인증서 접수

넥스트라인에 인증서발급 요청 시 접수양식에 따라 정보 기입후 인증서발급을 신청합니다.
① 인증서 신청 정보입력
도메인 :
(www.nextline.co.kr과 nextline.co.kr은 다른 도메인으로 인식되며 각각 인증서를 신청하셔야 합니다.)
상품종류 : 경제형/기본형/골드형/프리미엄형/멀티도메인(도메인이 여러개일 경우 선택)
도메인 추가 등록 : 멀티도메인의 경우 해당되며 추가하실 도메인 명을 기입합니다.
인증서 기간 : 1/2/3 년 
운영환경 : Apache + Mod SSL 
CSR 코드입력 : CSR 추출값 입력
상호명(영문입력) : nextline
부서명(영문입력) : Technological Support Department
주소 상세주소(영문입력) : Hostway IDC 343-1
시/군(영문입력) : Yatap-dong Bundang-gu
시/도(영문입력) : Seongnam Gyeonggi-do
우편번호 : 463-828
국가 : KR
등록번호(사업자등록번호/주민등록번호 도메인 소유주) : 도메인 조회 시 나타나는 책임자 및 사업자 정보를 입력합니다.
메일주소(인증서 수령 이메일기입) : 도메인 조회 시 나타나있는 책임자 전자우편을 입력합니다.
담당자 이름 :  도메인 조회 시 나타나는 책임자 명을 입력합니다.
전화 번호 : 도메인 조회 시 나타나는 책임자 전화번호를 입력합니다.
 
② CSR 추출
[root@nextline src]# cat nextline.co.kr.csr

 
생성된 CSR 을 출력하면 아래와 같은 base64 형식의 문서를 볼 수 있으며 이 문서의 첫 줄 -----BEGIN … 부터 마지막 줄 -----END … 까지 복사하여 인증서 신청시 CSR 코드입력란에 복사하여 붙여 넣은 뒤 입력정보와 함께 전송 후 주민등록증 사본(개인)/사업자등록증 사본(사업자)를 팩스로 보내주시면 접수가 완료됩니다.



( 11 ) 인증서 설치

접수한 CSR 파일이 정상적으로 생성되었다면 별다른 문제없이 인증서를 발급 받을 수 있습니다. 인증서 파일은 신청시 기록한 Email 주소를 통해 인증서를 첨부파일로 수신하게 됩니다.
 
① 발급인증서 첨부화일 확인
메일로 받은 인증서 파일의 압축을 해제하시면 인증서 및 CA 두개의 파일이 확인 하실 수 있습니다.


② ftp 계정생성
인증서를 서버로 업로드하기위해 FTP 계정을 생성합니다. 기존 FTP 계정을 이용하여도 무방합니다.
계정생성
[root@nextline ~]# useradd nextline
계정 패스워드설정
[root@nextline ~]# passwd nextline
Changing password for user nextline.
패스워드 입력
New UNIX password:
패스워드 재입력
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
 
 
③ 인증서 업로드
FTP 프로그램을 이용하여 4393142.crt, 4393142.ca-bundle 파일을 업로드 합니다.

 
④ 인증서 경로로 인증파일 이동
위 파일 중 4393142.crt 파일을 SSLCertificateFile 경로로 이동합니다.
SSLCertificateFile /usr/local/apache/conf/ssl.crt/4393142.crt


4393142.ca-bundle 파일을 SSLCACertificateFile 경로로 이동합니다.
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/4393142.ca-bundle


위에서 생성한 개인키(nextline.co.kr.key)를 SSLCertificateKeyFile 경로로 이동합니다.
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/nextline.co.kr.key

 
⑤ 웹서버 환경설정
[root@nextline src]# vi /usr/local/apache/conf/httpd.conf

  
Apache 1.x + mod_ssl 연동 설치시 기본적으로 80, 443포트의 설정부분이 추가되므로 Port 80 부분을 주석처리하여 적용되지 않도록 합니다.
#Port 80 주석처리 합니다.

 
일반 http 80 포트 접속 VirtualHost 설정
NameVirtualHost xxx.xxx.xxx.xxx:80

DocumentRoot /home/nextline/public_html
ServerName nextline.co.kr


 
SSL VirtualHost 설정
모든 보안 가상 호스트들의 설정은 와 지시자 사이에 포함되어야 합니다.
 
NameVirtualHost xxx.xxx.xxx.xxx:443

DocumentRoot "/home/nextline/public_html"
ServerName nextline.co.kr
SSLCertificateFile /usr/local/apache/conf/ssl.crt/4393142.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/nextline.co.kr.key
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/4393142.ca-bundle

 
SSL Virtual Host Context 기본설정

아이피 및 https 프로토콜 포트443 포트입력를 입력합니다.

보안서버 도메인의 홈디렉토리를 입력합니다.
DocumentRoot "/home/nextline/public_html"
도메인을 입력합니다.
ServerName nextline.co.kr
SSL 엔진을 활성화 합니다
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
인증서의 경로와 파일명을 명시합니다.
SSLCertificateFile /usr/local/apache/conf/ssl.crt/4393142.crt
개인키 경로와 파일명을 명시합니다.
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/nextline.co.kr.key
CA root인증서 경로와 파일명을 명시합니다.
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/4393142.ca-bundle

    SSLOptions +StdEnvVars


    SSLOptions +StdEnvVars

BrowserMatch ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog /usr/local/apache/logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


 
⑥ 웹서버 재실행
웹설정 파일의 오류가 없는지 체크를 합니다.
[root@nextline ~]# /usr/local/apache/bin/apachectl configtest
Syntax OK [정상]
웹설정 파일을 적용하기 위해 아파치를 재가동합니다.
[root@nextline ~]# /usr/local/apache/bin/apachectl startssl

 
⑤ 웹서버 포트점검
[root@nextline ~]# netstat -anp | grep httpd
httpd 데몬이 80 / 443 포트로 실행됩니다.

 
⑥ 웹서비스 동작상태 점검
https://nextline.co.kr
페이지 하단을 보시면 열쇠 아이콘이 보이게 됩니다. 아이콘을 클릭하게 되면 위와 같이 인증서 정보를 확인하실 수 있습니다.
 
 
⑦ 인증 경로확인

  MS 원격 보안점검도구 (Microsoft Baseline Security Analyzer)
  Apache SSL 설치방법





회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도
회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도 회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도