작성자기술지원부김삼수 kiss@nextline.net 보안서버 SSL 보안서버 SSL 이란 Secure Sockets Layer 의머리글로서웹서버인증, 서버인증이라고도합니다. 브라우저와서버간의통신에서정보를암호화함으로써도중에해킹을통해정보가유출되더라도정보의내용을보호할수있게해주는보안솔루션으로벌써수백만의사이트운영자에의해사용되어지고있습니다. 전세계적인표준보안기술은 1994년 Netscape 에의해개발되었으며웹서버과웹브라우저간의모든데이터를암호화해서보내게됩니다. Apache_1.x + mod_ssl + Mysql + Php + Zend + OpenSSL 설치 ( 1 ) OpenSSL 라이브러리확인 OpenSSL 설치유 / 무를확인하신후이미설치가되어있는경우기술문서의 OpenSSL 부분을적용하지않으셔도무방합니다. 1 rpm 버전확인 [root@nextline ~]# rpm -qa grep openssl rpm 버전으로설치된 openssl의유 / 무를확인합니다. Source 버전설치를위해 rpm 버전을삭제하시면안되며 openssl 삭제시의존성을가지는라이브러리파일의오류로 ssh, sendmail 등의서비스가실행되지않으니주의하시기바랍니다. 2 Source 버전확인 whereis 명령어명령의실행파일, 소스, 매뉴얼페이지가어디있는지보여줍니다. [ root@nextline ~]# whereis openssl rpm 버전이설치되어있지않을시위합니다. 명령어를통해소스버전설치유 / 무를확인
( 2 ) Source 파일다운로드 wget은웹에서자동적으로파일을받아오는데사용되는유틸리티이며 HTTP, HTTPS, FTP 프로토콜을지원합니다. 1 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 2 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 3 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 4 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
5 ZendOptimzer-3.3.0-linux-glibc21-i386.tar.gz 다운로드사이트 : http://www.zend.com/ 다운로드받은 ZendOptimzer을 ftp을이용하여업로드합니다. 6 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 7 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 8 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 [ 옵션 ] 파일명 1 apache_1.3.37.tar.gz [root@nextline ~]# tar zxvf apache_1.3.37.tar.gz 2 mysql-4.1.22.tar.gz [root@nextline ~]# tar zxvf mysql-4.1.22.tar.gz 3 gd-2.0.35.tar.gz [root@nextline ~]# tar zxvf gd-2.0.35.tar.gz 4 php-5.2.3.tar.gz [root@nextline ~]# tar zxvf php-5.2.3.tar.gz 5 ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz [root@nextline ~]# tar zxvf ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz 6 mod_ssl-2.8.28-1.3.37.tar.gz
[root@nextline ~]# tar zxvf mod_ssl-2.8.28-1.3.37.tar.gz 7 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 설치 1 컴파일환경설정 [ root@nextline ~]# cd openssl-0.9.8e [root@nextline openssl-0.9.8e]#./config --prefix=/usr/local/openssl [ 컴파일옵션 ] --prefix=/usr/local/openssll openssl이설치될경로를지정하는옵션입니다.
2 컴파일 [ root@nextline openssl-0.9.8e]# make 3 설치테스트 [root@nextline openssl-0.9.8e]# make test 4 설치 [root@nextline openssl-0.9.8e]# make install 5 설치상태확인설치가완료되면컴파일시지정된경로에 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 연동설치 1 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
2 아파치컴파일환경설정 [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 3 컴파일 [root@nextline apache_1.3.37]# make 4 설치 [root@nextline apache_1.3.37]# make certificate 5 정보입력이단계에서는 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 부분을설정하므로메모해주시기바랍니다.
6 설치 [ root@nextline apache_1.3.37]# make install 7 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 5 ServerName 설정 ServerName 부분에아이피혹은도메인을기입합니다. ServerName xxx.xxx.xxx.xxx 6 SSL Virtual Host 설정다른 SSL 설정은디폴트로하고 <IfDefine SSL> </IfDefine> 지시자내의아래항목만아이피및도메인에맞게편집합니다. <VirtualHost xxx.xxx.xxx.xxx:443> [ 아이피 : 포트 ] DocumentRoot "/home/nextline/public_html" [ 홈디렉토리경로 ] ServerName nextline.co.kr [ 도메인명 ] SSL 도메인은호스트별로인증을받아야하므로인증받을도메인을입력합니다. 7 SSL 설정적용 [root@nextline apache_1.3.37]# /usr/local/apache/bin/ apachectl startssl
8 ssl 443 포트확인 [ root@nextline src]# netstat -anp grep httpd tcp 0 0 :::80 :::* LISTEN 2215/httpd tcp 0 0 :::443 :::* LISTEN 2215/httpd 9 https 접속테스트 https://nextline.co.kr 접속을하시면아래와같이보안경고창이보여집니다. [ 예 ] [Enter] 10 SSL 보안적용화면 mod_ssl이정상적으로적용되었습니다. 개인키 /CSR 생성및 CRT( 인증서 ) 적용은이문서의 [OpenSSL을이용한개인키 /CSR/CRT 생성 / 인증서접수 / 인증서설치] 부분을적용합니다.
( 5 ) Mysql 설치 1 컴파일환경설정 [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 2 컴파일 [ root@nextline mysql-4.1.22]# make 3 설치 [ root@nextline mysql-4.1.22]# make install 4 mysql 데이터디렉토리생성 [root@nextline mysql-4.1.22]# /usr/local/mysql/bin/mysql_install_db 5 데이터디렉토리확인 [root@nextline mysql-4.1.22]# ls /usr/local/mysql
데이터디렉토리 [var] 6 mysql 계정생성 [root@nextline mysql-4.1.22]#usradd M s /sbin/nologin mysql; passwd mysql New UNIX password : [mysql 패스워드를지정합니다 ] Retype new UNIX password : [mysql 패스워드를재입력합니다 ] 7 mysql 디렉토리소유권변경 chown - 리눅스의소유권변경명령어입니다. -R 옵션 - 하위디렉토리까지모두적용합니다. [root@nextline mysql-4.1.22]#chown R mysql.mysql /usr/local/mysql 8 mysql 데몬구동 mysql를백그라운드로구동합니다. [root@nextline mysql-4.1.22]#/usr/local/mysql/bin/mysqld_safe & 9 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
10 mysql root 패스워드설정 [root@nextline mysql-4.1.22]#/usr/local/mysql/bin/mysqladmin u root password xxxxxx 11 mysql 접속확인 [root@nextline mysql-4.1.22]#mysql u root p 접속이정상적으로이루어지며 mysql 설치가완료된화면입니다. ( 6 ) GD 설치 1 컴파일환경설정 [root@nextline ~]# cd gd-2.0.35 [root@nextline gd-2.0.35]#./configure --prefix=/usr/local/gd2 [ 컴파일옵션 ] GD가설치될경로를지정하는옵션입니다. --prefix=/usr/local/gd2 2 컴파일 [root@nextline gd-2.0.35]# make 3 설치
[root@nextline gd-2.0.35]# make install 4 설치확인 [root@nextline gd-2.0.35]# ls /usr/local/ ( 7 ) PHP 설치 1 컴파일환경설정 [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에서메모리제한기능을지원하는옵션입니다.
2 컴파일 [root@nextline php-5.2.3]#make 5 설치 [root@nextline php-5.2.3]#make install 6 php 설정파일복사 [root@nextline php-5.2.3]#cp php.ini-dist /usr/local/lib/php.ini 7 아파치설정파일편집 [ root@nextline php-5.2.3]#vi /usr/local/apache/conf/httpd.conf
8 PHP 인덱스파일설정 <IfModule mod_dir.c> DirectoryIndex index.html index.htm index.php index.jsp </IfModule> 9 AddType 설정 AddType application/x-httpd-php.php.php4.php3 10 설정파일적용 [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 설치 1 install.sh 실행 [root@nextline ~]# cd ZendOptimizer-3.3.0-linux-glibc21-i386 [root@nextline ZendOptimizer-3.3.0-linux-glibc21-i386]#./install.sh
2 OK 3 Zend Optimizer 라이센스화면입니다. [EXIT] 4 라이센스동의화면입니다. [Yes]
5 Zend 설치경로를지정하는화면입니다. /usr/local/zend( 절대경로 ) 확인후를선택합니다. Zend Optimizer 설치경로가자동지정되지않을시수동으로 /usr/local/zend 경로를지정해주시면됩니다. (Linux OS의응용프로그램은기본 /usr/local에설치되기때문에 /usr/local/zend로지정합니다.) [OK] 6 php.ini의경로를지정하는화면입니다. php설치시 php.ini 파일이 /usr/local/lib에생성되기때문에 /usr/local/lib( 절대경로 ) 지정합니다. [OK] 7 Zend Optimizer + Apache 연동할것인지를묻는화면입니다 [ Yes]
8 apaachectl의경로를지정하는화면입니다. [OK] 9 php.ini 파일의 php.ini-zend_optimizer.bak 백업파일을생성하는화면이며, 생성위치는 php.ini 파일이존재하는 /usr/local/lib 경로에생성됩니다. [OK] 10 Zend Optimizer 설치완료화면입니다 [OK] 11 apache 재시작을묻는화면입니다
[Yes] 12 Apache 재시작성공 [OK] 13 phpinfo 파일생성 [root@nextline ~]#vi /usr/local/apache/htdocs/php_test.php 14 phpinfo 코드설정 <? phpinfo();?> 15 APM 연동확인 http://xxx.xxx.xxx.xxx/php_test.php
( 9 ) CSR 생성 CSR ( Certificate Signing Request ) 이란? SSL 서버를운영하는회사의정보를암호화하여인증기관으로보내인증서를받게하는일종의신청서이며 CSR은 ASCII 텍스트화일로생성됩니다. 발급 1 개인키생성 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
2 도메인조회 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 생성될수있습니다. 3 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 []:
3 CSR 확인 [root@nextline src]# openssl req -noout -text -in nextline.co.kr.csr ( 10 ) 인증서접수넥스트라인에인증서발급요청시접수양식에따라정보기입후인증서발급을신청합니다. 1 인증서신청정보입력도메인 : (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 등록번호 ( 사업자등록번호 / 주민등록번호도메인소유주 ) : 도메인조회시나타나는책임자및사업자정보를입력합니다. 메일주소 ( 인증서수령이메일기입 ) : 도메인조회시나타나있는책임자전자우편을입력합니다. 담당자이름 : 도메인조회시나타나는책임자명을입력합니다. 전화번호 : 도메인조회시나타나는책임자전화번호를입력합니다. 2 CSR 추출 [root@nextline src]# cat nextline.co.kr.csr 생성된 CSR 을출력하면아래와같은 base64 형식의문서를볼수있으며이문서의첫줄 -----BEGIN 부터마지막줄 -----END 까지복사하여인증서신청시 CSR 코드입력란에복사하여붙여넣은뒤입력정보와함께전송후주민등록증사본 ( 개인 )/ 사업자등록증사본 ( 사업자 ) 를팩스로보내주시면접수가완료됩니다.
( 11 ) 인증서설치접수한 CSR 파일이정상적으로생성되었다면별다른문제없이인증서를발급받을수있습니다. 인증서파일은신청시기록한 Email 주소를통해인증서를첨부파일로수신하게됩니다. 1 발급인증서첨부화일확인메일로받은인증서파일의압축을해제하시면인증서및 CA 두개의파일이확인하실수있습니다. 2 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.
3 인증서업로드 FTP 프로그램을이용하여 4393142.crt, 4393142.ca-bundle 파일을업로드합니다. 4 인증서경로로인증파일이동위파일중 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 5 웹서버환경설정 [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 <VirtualHost xxx.xxx.xxx.xxx:80> DocumentRoot /home/nextline/public_html ServerName nextline.co.kr </VirtualHost> SSL VirtualHost 설정모든보안가상호스트들의설정은 <IfDefineSSL> 와 </IfDefineSSL> 지시자사이에포함되어야합니다. NameVirtualHost xxx.xxx.xxx.xxx:443 <VirtualHost 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 기본설정 <IfDefine SSL> 아이피및 https 프로토콜포트443 포트입력를입력합니다. <VirtualHost xxx.xxx.xxx.xxx: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 < FilesMatch ".(cgi shtml phtml php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/usr/local/apache/cgi-bin">
SSLOptions +StdEnvVars < /Directory> 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" </VirtualHost> </IfDefine> 6 웹서버재실행웹설정파일의오류가없는지체크를합니다. [root@nextline ~]# /usr/local/apache/bin/apachectl configtest Syntax OK [ 정상 ] 웹설정파일을적용하기위해아파치를재가동합니다. [ root@nextline ~]# /usr/local/apache/bin/apachectl startssl 5 웹서버포트점검 [root@nextline ~]# netstat -anp grep httpd httpd 데몬이 80 / 443 포트로실행됩니다. 6 웹서비스동작상태점검 https://nextline.co.kr 페이지하단을보시면열쇠아이콘이보이게됩니다. 아이콘을클릭하게되면위와같이인증서정보를확인하실수있습니다.
7 인증경로확인